home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / akcl1615.lha / doc / DOC < prev    next >
Text File  |  1992-04-28  |  188KB  |  5,892 lines

  1.  
  2.  
  3. FALLOCATE-CONTIGUOUS-PAGES
  4. Function in SI package:
  5. Args: (number &optional (really-allocate nil))
  6. KCL specific: Sets the maximum number of pages for contiguous blocks to
  7. NUMBER.  If REALLY-ALLOCATE is non-NIL, then the specified
  8. number of pages will be allocated immediately.
  9.  
  10. FSIGNUM
  11. Function in LISP package:
  12. Args: (number)
  13. If NUMBER is zero, returns NUMBER; else returns (/ NUMBER (ABS NUMBER)).
  14.  
  15. FLOGNOT
  16. Function in LISP package:
  17. Args: (integer)
  18. Returns the bit-wise logical NOT of INTEGER.
  19.  
  20. FGENSYM
  21. Function in LISP package:
  22. Args: (&optional (x nil))
  23. Creates and returns a new uninterned symbol whose name is a prefix string
  24. (defaults to "G"), followed by a decimal number.  The number is incremented
  25. by each call to GENSYM.  X, if an integer, resets the counter.  If X is a
  26. string, it becomes the new prefix.
  27.  
  28. FSUBSEQ
  29. Function in LISP package:
  30. Args: (sequence start &optional (end (length sequence)))
  31. Returns a copy of a subsequence of SEQUENCE between START (inclusive) and
  32. END (exclusive).
  33.  
  34. FVECTOR
  35. Function in LISP package:
  36. Args: (&rest objects)
  37. Constructs a Simple-Vector from the given objects.
  38.  
  39. FMINUSP
  40. Function in LISP package:
  41. Args: (number)
  42. Returns T if NUMBER < 0; NIL otherwise.
  43.  
  44. FSYSTEM
  45. Function in LISP package:
  46. Args: (string)
  47. KCL specific: Executes a Shell command as if STRING is an input to the Shell.
  48. Not all versions of KCL support this function.
  49.  
  50. FDO-EXTERNAL-SYMBOLS
  51. Macro in LISP package:
  52. Syntax: (do-external-symbols (var [package [result-form]])
  53.           {decl}* {tag | statement}*)
  54. Executes STATEMENTs once for each external symbol in the PACKAGE (which
  55. defaults to the current package), with VAR bound to the current symbol.
  56. Then evaluates RESULT-FORM (which defaults to NIL) and returns the value(s).
  57.  
  58. VMOST-POSITIVE-SHORT-FLOAT
  59. Variable in LISP package:
  60. The short-float closest in value to positive infinity.
  61.  
  62. FLOGORC1
  63. Function in LISP package:
  64. Args: (integer1 integer2)
  65. Returns the logical OR of (LOGNOT INTEGER1) and INTEGER2.
  66.  
  67. FINTEGER-DECODE-FLOAT
  68. Function in LISP package:
  69. Args: (float)
  70. Returns, as three values, the integer interpretation of significand F,
  71. the exponent E, and the sign S of the given float, so that
  72.              E
  73.     FLOAT = S * F * B    where B = (FLOAT-RADIX FLOAT)
  74.  
  75. F is a non-negative integer, E is an integer, and S is either 1 or -1.
  76.  
  77. F-
  78. Function in LISP package:
  79. Args: (number &rest more-numbers)
  80. Subtracts the second and all subsequent NUMBERs from the first NUMBER.
  81. With one arg, negates it.
  82.  
  83. V-
  84. Variable in LISP package:
  85. Holds the top-level form that KCL is currently evaluating.
  86.  
  87. VMOST-NEGATIVE-SINGLE-FLOAT
  88. Variable in LISP package:
  89. Same as MOST-NEGATIVE-LONG-FLOAT.
  90.  
  91. FCOMPILE
  92. Function in LISP package:
  93. Args: (name &optional (definition nil))
  94. If DEFINITION is NIL, NAME must be the name of a not-yet-compiled
  95. function.  In this case, COMPILE compiles the function, installs the compiled
  96. function as the global function definition of NAME, and returns NAME.
  97. If DEFINITION is non-NIL, it must be a lambda expression and NAME must be
  98. a symbol.  COMPILE compiles the lambda expression, installs the compiled
  99. function as the function definition of NAME, and returns NAME.
  100. There is only one exception for this:  If NAME is NIL, then the compiled
  101. function is not installed but is simply returned as the value of COMPILE.
  102.      In any case, COMPILE creates temporary files whose filenames are
  103. "gazonk***".  By default, i.e. if :LEAVE-GAZONK is not supplied or is
  104. NIL, these files are automatically deleted after compilation.
  105.  
  106. FUNTRACE
  107. Macro in LISP package:
  108. Syntax: (untrace {function-name}*)
  109. Removes tracing from the specified functions.  With no FUNCTION-NAMEs,
  110. untraces all functions.
  111.  
  112. FNINTERSECTION
  113. Function in LISP package:
  114. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  115. Returns the intersection of LIST1 and LIST2.  LIST1 may be destroyed.
  116.  
  117. VBOOLE-C1
  118. Variable in LISP package:
  119. Makes BOOLE return the complement of INTEGER1.
  120.  
  121. FAPROPOS
  122. Function in LISP package:
  123. Args: (string &optional (package nil))
  124. Prints those symbols whose print-names contain STRING as substring.
  125. If PACKAGE is non-NIL, then only the specified package is searched.
  126.  
  127. VLAMBDA-LIST-KEYWORDS
  128. Variable in LISP package:
  129. List of all the lambda-list keywords used in KCL.
  130.  
  131. VLEAST-POSITIVE-SHORT-FLOAT
  132. Variable in LISP package:
  133. The positive short-float closest in value to zero.
  134.  
  135. FBIT-NAND
  136. Function in LISP package:
  137. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  138. Performs a bit-wise logical NAND  on the elements of BIT-ARRAY1 and
  139. BIT-ARRAY2.
  140. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  141. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  142.  
  143. FINT-CHAR
  144. Function in LISP package:
  145. Args: (integer)
  146. Performs the inverse of CHAR-INT.  Equivalent to CODE-CHAR in KCL.
  147.  
  148. FCHAR-INT
  149. Function in LISP package:
  150. Args: (char)
  151. Returns the font, bits, and code attributes as a single non-negative integer.
  152. Equivalent to CHAR-CODE in KCL.
  153.  
  154. VLEAST-NEGATIVE-SINGLE-FLOAT
  155. Variable in LISP package:
  156. Same as LEAST-NEGATIVE-LONG-FLOAT.
  157.  
  158. F/=
  159. Function in LISP package:
  160. Args: (number &rest more-numbers)
  161. Returns T if no two of its arguments are numerically equal; NIL otherwise.
  162.  
  163. FLDB-TEST
  164. Function in LISP package:
  165. Args: (bytespec integer)
  166. Returns T if at least one of the bits in the specified bytes of INTEGER is 1;
  167. NIL otherwise.
  168.  
  169. V***
  170. Variable in LISP package:
  171. Gets the previous value of ** when KCL evaluates a top-level form.
  172.  
  173. FCOPY-SEQ
  174. Function in LISP package:
  175. Args: (sequence)
  176. Returns a copy of SEQUENCE.
  177.  
  178. VCHAR-CODE-LIMIT
  179. Variable in LISP package:
  180. The upper exclusive bound on values produced by CHAR-CODE.
  181.  
  182. FRATIONAL
  183. Function in LISP package:
  184. Args: (number)
  185. Converts NUMBER into rational accurately and returns it.
  186.  
  187. VPI
  188. Variable in LISP package:
  189. The floating-point number that is appropriately equal to the ratio of the
  190. circumference of the circle to the diameter.
  191.  
  192. FGET-SETF-METHOD
  193. Function in LISP package:
  194. Args: (form)
  195. Returns the five values (or five 'gangs') constituting the SETF method for
  196. FORM.  See the doc of DEFINE-SETF-METHOD for the meanings of the gangs.  It
  197. is an error if the third value (i.e., the list of store variables) is not a
  198. one-element list.  See the doc of GET-SETF-METHOD-MULTIPLE-VALUE for
  199. comparison.
  200.  
  201. FPOSITION
  202. Function in LISP package:
  203. Args: (item sequence
  204.        &key (from-end nil) (test #'eql) test-not (start 0)
  205.             (end (length sequence)) (key #'identity))
  206. Returns the index of the first element in SEQUENCE that satisfies TEST with
  207. ITEM; NIL if no such element exists.
  208.  
  209. FKEYWORDP
  210. Function in LISP package:
  211. Args: (x)
  212. Returns T if X is a symbol and it belongs to the KEYWORD package; NIL
  213. otherwise.
  214.  
  215. FNAME-CHAR
  216. Function in LISP package:
  217. Args: (name)
  218. Given an argument acceptable to string,
  219. Returns a character object whose name is NAME if one exists.  Returns NIL
  220. otherwise.  NAME must be an object that can be coerced to a string.
  221.  
  222. FCHAR-NAME
  223. Function in LISP package:
  224. Args: (char)
  225. Returns the name for CHAR as a string; NIL if CHAR has no name.
  226. Only #\Backspace, #\Tab, #\Newline (or #\Linefeed), #\Page, #\Return,
  227. and #\Rubout have names.
  228.  
  229. V*IGNORE-MAXIMUM-PAGES*
  230. Variable in LISP package:
  231. KCL specific: Tells the KCL memory manager whether (non-NIL) or not (NIL) it
  232. should expand memory whenever the maximum allocatable pages have been used
  233. up.
  234.  
  235. FMACHINE-VERSION
  236. Function in LISP package:
  237. Args: ()
  238. Returns a string that identifies the machine version of the machine
  239. on which KCL is currently running.
  240.  
  241. FEVAL-WHEN
  242. Special Form in LISP package:
  243. Syntax: (eval-when ({situation}*) {form}*)
  244. A situation must be either COMPILE, LOAD, or EVAL.  The interpreter evaluates
  245. only when EVAL is specified.  If COMPILE is specified, FORMs are evaluated
  246. at compile time.  If LOAD is specified, the compiler arranges so that FORMs
  247. be evaluated when the compiled code is loaded.
  248.  
  249. FDO*
  250. Special Form in LISP package:
  251. Syntax: (do* ({(var [init [step]])}*) (endtest {result}*)
  252.           {decl}* {tag | statement}*)
  253. Just like DO, but performs variable bindings and assignments in serial, just
  254. like LET* and SETQ do.
  255.  
  256. FRASSOC-IF
  257. Function in LISP package:
  258. Args: (predicate alist)
  259. Returns the first cons in ALIST whose cdr satisfies PREDICATE.
  260.  
  261. FMAKE-LIST
  262. Function in LISP package:
  263. Args: (size &key (initial-element nil))
  264. Creates and returns a list containing SIZE elements, each of which is
  265. initialized to INITIAL-ELEMENT.
  266.  
  267. FGET-DECODED-TIME
  268. Function in LISP package:
  269. Args: ()
  270. Returns the current time in decoded time format.  Returns nine values: second,
  271. minute, hour, date, month, year, day-of-week, daylight-saving-time-p, and
  272. time-zone.
  273.  
  274. FHOST-NAMESTRING
  275. Function in LISP package:
  276. Args: (pathname)
  277. Returns the host part of PATHNAME as a string.
  278.  
  279. FMAKE-ECHO-STREAM
  280. Function in LISP package:
  281. Args: (input-stream output-stream)
  282. Returns a bidirectional stream which gets its input from INPUT-STREAM and
  283. sends its output to OUTPUT-STREAM.  In addition, all input is echoed to
  284. OUTPUT-STREAM.
  285.  
  286. FTHE
  287. Special Form in LISP package:
  288. Syntax: (the value-type form)
  289. Declares that the value of FORM must be of VALUE-TYPE.  Signals an error if
  290. this is not the case.
  291.  
  292. FFREEZE-DEFSTRUCT
  293. Function in SI package:
  294. Args: (name)
  295. The inline defstruct type checker will be made more efficient, in that
  296. it will only check for types which currently include NAME.   After
  297. calling this the defstruct should not be altered.
  298.  
  299. FDEFSTRUCT
  300. Macro in LISP package:
  301. Syntax: (defstruct
  302.          {name | (name {:conc-name | (:conc-name prefix-string) |
  303.                         :constructor | (:constructor symbol [lambda-list]) |
  304.                         :copier | (:copier symbol) |
  305.                         :predicate | (:predicate symbol) | 
  306.                         (:include symbol) |
  307.                         (:print-function function) |
  308.                         (:type {vector | (vector type) | list}) |
  309.                         :named | (:static { nil | t})
  310.                         (:initial-offset number)}*)}
  311.          [doc]
  312.          {slot-name |
  313.           (slot-name [default-value-form] {:type type | :read-only flag}*) }*
  314.          )
  315. Defines a structure.  The doc-string DOC, if supplied, is saved as a STRUCTURE
  316. doc and can be retrieved by (documentation 'NAME 'structure).
  317. STATIC is akcl specific and makes the body non relocatable.
  318.  
  319. See the files misc/rusage.lsp misc/cstruct.lsp, for examples of making
  320. a lisp structure correspond to a C structure.
  321.  
  322.  
  323. FNTH
  324. Function in LISP package:
  325. Args: (n list)
  326. Returns the N-th element of LIST, where the car of LIST is the zeroth
  327. element.
  328.  
  329. FSIN
  330. Function in LISP package:
  331. Args: (radians)
  332. Returns the sine of RADIANS.
  333.  
  334. VBOOLE-ORC2
  335. Variable in LISP package:
  336. Makes BOOLE return LOGORC2 of INTEGER1 and INTEGER2.
  337.  
  338. FNUMERATOR
  339. Function in LISP package:
  340. Args: (rational)
  341. Returns as an integer the numerator of the given rational number.
  342.  
  343. FMASK-FIELD
  344. Function in LISP package:
  345. Args: (bytespec integer)
  346. Extracts the specified byte from INTEGER.
  347.  
  348. FARRAY-RANK
  349. Function in LISP package:
  350. Args: (array)
  351. Returns the number of dimensions of ARRAY.
  352.  
  353. FCAAR
  354. Function in LISP package:
  355. Args: (x)
  356. Equivalent to (CAR (CAR X)).
  357.  
  358. V*READTABLE*
  359. Variable in LISP package:
  360. The current readtable.
  361.  
  362. FINCF
  363. Special Form in LISP package:
  364. Syntax: (incf place [delta])
  365. Adds the number produced by DELTA (which defaults to 1) to the number
  366. in PLACE.
  367.  
  368. FLOAD
  369. Function in LISP package:
  370. Args: (filename
  371.        &key (verbose *load-verbose*) (print nil) (if-does-not-exist :error))
  372. Loads the file named by FILENAME into KCL.
  373.  
  374. FHELP
  375. Function in LISP package:
  376. Args: (&optional symbol)
  377. KCL specific: Prints the documentation associated with SYMBOL.  With no
  378. argument, this function prints the greeting message to KCL beginners.
  379.  
  380. FSINH
  381. Function in LISP package:
  382. Args: (number)
  383. Returns the hyperbolic sine of NUMBER.
  384.  
  385. FSBIT
  386. Function in LISP package:
  387. Args: (simple-bit-array &rest subscripts)
  388. Returns the bit from SIMPLE-BIT-ARRAY at SUBSCRIPTS.
  389.  
  390. FSETF
  391. Special Form in LISP package:
  392. Syntax: (setf {place newvalue}*)
  393. Replaces the value in PLACE with the value of NEWVALUE, from left to right.
  394. Returns the value of the last NEWVALUE.  Each PLACE may be any one of the
  395. following:
  396.   * A symbol that names a variable.
  397.   * A function call form whose first element is the name of the following
  398.     functions:
  399.     nth    elt    subseq    rest    first ... tenth
  400.     c?r    c??r    c???r    c????r
  401.     aref    svref    char    schar    bit    sbit    fill-poiter
  402.     get    getf    documentation    symbol-value    symbol-function
  403.     symbol-plist    macro-function    gethash
  404.     char-bit    ldb    mask-field
  405.     apply
  406.     where '?' stands for either 'a' or 'd'.
  407.   * the form (THE type place) with PLACE being a place recognized by SETF.
  408.   * a macro call which expands to a place recognized by SETF.
  409.   * any form for which a DEFSETF or DEFINE-SETF-METHOD declaration has been
  410.     made.
  411.  
  412. FWHEN
  413. Special Form in LISP package:
  414. Syntax: (when test {form}*)
  415. If TEST evaluates to non-NIL, then evaluates FORMs as a PROGN.  If not,
  416. simply returns NIL.
  417.  
  418. FOPEN
  419. Function in LISP package:
  420. Args: (filename &key (direction :input) (element-type 'string-char)
  421.                      (if-exists :error) (if-does-not-exist :error))
  422. Opens the file specified by FILENAME, which may be a string, a pathname,
  423. or a stream.  Returns a stream for the open file.
  424. DIRECTION is  :INPUT, :OUTPUT, :IO or :PROBE.
  425. ELEMENT-TYPE is  STRING-CHAR, (UNSIGNED-BYTE n),
  426. UNSIGNED-BYTE, (SIGNED-BYTE n), SIGNED-BYTE, CHARACTER, BIT, (MOD n), or
  427. :DEFAULT.
  428. IF-EXISTS is :ERROR, :NEW-VERSION, :RENAME,
  429. :RENAME-AND-DELETE, :OVERWRITE, :APPEND, :SUPERSEDE, or NIL.
  430. IF-DOES-NOT-EXIST is  :ERROR, :CREATE, or NIL.
  431.  
  432. FBOTH-CASE-P
  433. Function in LISP package:
  434. Args: (char)
  435. Returns T if CHAR is an alphabetic character; NIL otherwise.  Equivalent to
  436. ALPHA-CHAR-P.
  437.  
  438. FNULL
  439. Function in LISP package:
  440. Args: (x)
  441. Returns T if X is NIL; NIL otherwise.
  442.  
  443. FRENAME-FILE
  444. Function in LISP package:
  445. Args: (file new-name)
  446. Renames the file FILE to NEW-NAME.  FILE may be a string, a pathname, or
  447. a stream.
  448.  
  449. FFILE-AUTHOR
  450. Function in LISP package:
  451. Args: (file)
  452. Returns the author name of the specified file, as a string.
  453. FILE may be a string or a stream
  454.  
  455. FSTRING-CAPITALIZE
  456. Function in LISP package:
  457. Args: (string &key (start 0) (end (length string)))
  458. Returns a copy of STRING with the first character of each word converted to
  459. upper-case, and remaining characters in the word converted to lower case.
  460.  
  461. FCCASE
  462. Macro in LISP package:
  463. Syntax: (ccase keyplace {({key | ({key}*)} {form}*)}*)
  464. Evaluates KEYPLACE and tries to find the KEY that is EQL to the value of
  465. KEYPLACE.  If one is found, then evaluates FORMs that follow the KEY and
  466. returns the value(s) of the last FORM.  If not, signals a correctable error.
  467.  
  468. FMACROEXPAND
  469. Function in LISP package:
  470. Args: (form &optional (env nil))
  471. If FORM is a macro form, then expands it repeatedly until it is not a macro
  472. any more.  Returns two values: the expanded form and a T-or-NIL flag
  473. indicating whether the original form was a macro.
  474.  
  475. V*PRINT-BASE*
  476. Variable in LISP package:
  477. The radix in which the KCL printer prints integers and rationals.
  478. The value must be an integer from 2 to 36, inclusive.
  479.  
  480. FPHASE
  481. Function in LISP package:
  482. Args: (number)
  483. Returns the angle part of the polar representation of a complex number.
  484. For non-complex numbers, this is 0.
  485.  
  486. FSCHAR
  487. Function in LISP package:
  488. Args: (simple-string index)
  489. Returns the character object representing the INDEX-th character in STRING.
  490. This is faster than CHAR.
  491.  
  492. FFIFTH
  493. Function in LISP package:
  494. Args: (x)
  495. Equivalent to (CAR (CDDDDR X)).
  496.  
  497. FNCONC
  498. Function in LISP package:
  499. Args: (&rest lists)
  500. Concatenates LISTs by destructively modifying them.
  501.  
  502. FBOOLE
  503. Function in LISP package:
  504. Args: (op integer1 integer2)
  505. Returns an integer produced by performing the logical operation specified by
  506. OP on the two integers.  OP must be the value of one of the following
  507. constants:
  508.     BOOLE-CLR    BOOLE-C1    BOOLE-XOR    BOOLE-ANDC1
  509.     BOOLE-SET    BOOLE-C2    BOOLE-EQV    BOOLE-ANDC2
  510.     BOOLE-1        BOOLE-AND    BOOLE-NAND    BOOLE-ORC1
  511.     BOOLE-2        BOOLE-IOR    BOOLE-NOR    BOOLE-ORC2
  512. See the variable docs of these constants for their operations.
  513.  
  514. FTAILP
  515. Function in LISP package:
  516. Args: (sublist list)
  517. Returns T if SUBLIST is one of the conses in LIST; NIL otherwise.
  518.  
  519. FCONSP
  520. Function in LISP package:
  521. Args: (x)
  522. Returns T if X is a cons; NIL otherwise.
  523.  
  524. FTENTH
  525. Function in LISP package:
  526. Args: (x)
  527. Equivalent to (CADR (CDDDDR (CDDDDR X))).
  528.  
  529. FMAKE-STRING-INPUT-STREAM
  530. Function in LISP package:
  531. Args: (string &optional (start 0) (end (length string)))
  532. Returns an input stream which will supply the characters of String between
  533. Start and End in order.
  534.  
  535. FLISTP
  536. Function in LISP package:
  537. Args: (x)
  538. Returns T if X is either a cons or NIL; NIL otherwise.
  539.  
  540. FCOMPILE-FILE
  541. Function in LISP package:
  542. Args: (input-pathname
  543.        &key output-file (load nil) (message-file nil) 
  544.        ;AKCL specific keywords:
  545.        system-p c-debug c-file h-file data-file)
  546.  
  547. Compiles the file specified by INPUT-PATHNAME and generates a fasl file
  548. specified by OUTPUT-FILE.  If the filetype is not specified in INPUT-PATHNAME,
  549. then ".lsp" is used as the default file type for the source file.  :LOAD
  550. specifies whether to load the generated fasl file after compilation.
  551. :MESSAGE-FILE specifies the log file for the compiler messages.  It defaults to
  552. the value of the variable COMPILER:*DEFAULT-MESSAGE-FILE*.  A non-NIL value of
  553. COMPILER::*COMPILE-PRINT* forces the compiler to indicate the form currently
  554. being compiled.  More keyword parameters are accepted, depending on the
  555. version.  Most versions of KCL can receive :O-FILE, :C-FILE, :H-FILE, and
  556. :DATA-FILE keyword parameters, with which you can control the intermediate
  557. files generated by the AKCL compiler.  Also :C-DEBUG will pass the -g flag to
  558. the C compiler.
  559.  
  560.  
  561. By top level forms in a file, we mean the value of *top-level-forms* after
  562. doing (TF form) for each form read from a file.  We define TF as follows:
  563.  
  564. (defun TF (x)
  565.  (when (consp x)
  566.   (setq x (macroexpand x))
  567.   (when (consp x)
  568.      (cond ((member (car x) '(progn  eval-when))
  569.             (mapcar 'tf (cdr x)))
  570.            (t  (push x *top-level-forms*))))))
  571.  
  572. Among the common lisp special forms only DEFUN and DEFMACRO will cause actual
  573. native machine code to be generated.  The rest will be specially treated in an
  574. init section of the .data file.  This is done so that things like putprop,setq,
  575. and many other forms would use up space which could not be usefully freed, if
  576. we were to compile to native machine code.  If you have other `ordinary' top
  577. level forms which you need to have compiled fully to machine code you may
  578. either set compiler::*COMPILE-ORDINARIES* to t, or put them inside a
  579.  
  580. (PROGN 'COMPILE ...forms-which-need-to-be-compiled)
  581.  
  582. The compiler will take each of them and make a temporary function which will be
  583. compiled and invoked once.  It is permissible to wrap a (PROGN 'COMPILE ..)
  584. around the whole file.  Currently this construction binds the
  585. compiler::*COMPILE-ORDINARIES* flag to t.  Setting this flag globally to a non
  586. nil value to cause all top level forms to generate machine code.  This might be
  587. useful in a system such as PCL, where a number of top level lambda expressions
  588. are given.  Note that most common lisps will simply ignore the top level atom
  589. 'compile, since it has no side effects.
  590.  
  591. Defentry, clines, and defcfun also result in machine code being generated.
  592.  
  593. Evaluation at Compile time:
  594. --------------------------
  595.   In AKCL version 1-350, the eval-when behaviour was changed in order to allow
  596. more efficient init code, and also to bring it into line with the resolution
  597. passed by the X3j13 committee.  Evaluation at compile time is controlled by
  598. placing eval-when special forms in the code, or by the value of the variable
  599. compiler::*eval-when-defaults* [default value :defaults].  If that variable
  600. has value :defaults, then the following hold:
  601.  
  602. Eval at Compile       Type of Top Level Form
  603.  
  604. Partial:       defstructs, defvar, defparameter
  605. Full:              defmacro, defconstant, defsetf, define-setf-method,
  606.             deftype, package ops, proclaim
  607. None:             defun, others
  608.  
  609.  
  610. By `partial' we mean (see the X3J13 Common Lisp document
  611. (doc/compile-file-handling-of-top-level-forms) for more detail), that functions
  612. will not be defined, values will not be set, but other miscellaneous compiler
  613. properties will be set: eg properties to inline expand defstruct accessors and
  614. testers, defstruct properties allowing subsequent defstructs to include this
  615. one, any type hierarch information, special variable information will be set up.
  616.  
  617. Example:
  618. (defun foo () 3)
  619. (defstruct jo a b)
  620.  
  621. As a side effect of compiling these two forms, foo would not have its function
  622. cell changed.  Neither would jo-a, although it would gain a property which
  623. allows it to expand inline to a structure access.  Thus if it had a previous
  624. definition (as commonly happens from previously loading the file), this previous
  625. definition would not be touched, and could well be inconsistent with the
  626. compiler properties.  Unfortunately this is what the CL standard says to do,
  627. and I am just trying to follow it.
  628.  
  629. If you prefer a more intuitive scheme, of evaling all forms in the file, so
  630. that there are no inconsistencies, (previous behaviour of AKCL) you may set
  631. compiler::*eval-when-defaults* to '(compile eval load).
  632.  
  633. The variable compiler::*FASD-DATA* [default t] controls whether an ascii output
  634. is used for the data section of the object file.  The data section will be in
  635. ascii if *fasd-data* is nil or if the system-p keyword is supplied to
  636. compile-file and *fasd-data* is not eq to :system-p.
  637.  
  638. The old KCL variable *compile-time-too* has disappeared.
  639.  
  640. See OPTIMIZE on how to enable warnings of slow constructs.
  641.  
  642.  
  643. FMAXIMUM-ALLOCATABLE-PAGES
  644. Function in SI package
  645. Args: (type)
  646. KCL specific: Returns the current maximum number of pages for the type class
  647. of the KCL implementation type TYPE.
  648.  
  649. FNSUBSTITUTE-IF-NOT
  650. Function in LISP package:
  651. Args: (new test sequence
  652.        &key (from-end nil) (start 0) (end (length sequence))
  653.             (count most-positive-fixnum) (key #'identity))
  654. Returns a sequence of the same kind as SEQUENCE with the same elements
  655. except that all elements not satisfying TEST are replaced with NEWITEM.
  656. SEQUENCE may be destroyed.
  657.  
  658. FMAPCAN
  659. Function in LISP package:
  660. Args: (fun list &rest more-lists)
  661. Applies FUN to successive cars of LISTs, NCONCs the results, and returns it.
  662.  
  663. FEIGHTH
  664. Function in LISP package:
  665. Args: (x)
  666. Equivalent to (CADDDR (CDDDDR X)).
  667.  
  668. FLENGTH
  669. Function in LISP package:
  670. Args: (sequence)
  671. Returns the length of SEQUENCE.
  672.  
  673. FRASSOC
  674. Function in LISP package:
  675. Args: (item alist &key (test #'eql) test-not (key #'identity))
  676. Returns the first cons in ALIST whose cdr is equal to ITEM.
  677.  
  678. FMULTIPLE-VALUE-CALL
  679. Special Form in LISP package:
  680. Syntax: (multiple-value-call function {form}*)
  681. Calls FUNCTION with all the values of FORMs as arguments.
  682.  
  683. FPPRINT
  684. Function in LISP package:
  685. Args: (object &optional (stream *standard-output*))
  686. Pretty-prints OBJECT.  Returns OBJECT.  Equivalent to
  687.     (WRITE :STREAM STREAM :PRETTY T)
  688. The SI:PRETTY-PRINT-FORMAT property N (which must be a non-negative integer)
  689. of a symbol SYMBOL controls the pretty-printing of form
  690.     (SYMBOL f1 ... fN fN+1 ... fM)
  691. in such a way that the subforms fN+1, ..., fM are regarded as the 'body' of
  692. the entire form.  For instance, the property value of 2 is initially given
  693. to the symbol DO.
  694.  
  695. FFIND-IF
  696. Function in LISP package:
  697. Args: (test sequence
  698.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  699. Returns the index of the first element in SEQUENCE that satisfies TEST; NIL if
  700. no such element exists.
  701.  
  702. VSHORT-FLOAT-EPSILON
  703. Variable in LISP package:
  704. The smallest positive short-float that satisfies
  705.     (not (= (float 1 e) (+ (float 1 e) e))).
  706.  
  707. FPATHNAME-HOST
  708. Function in LISP package:
  709. Args: (pathname)
  710. Returns the host slot of PATHNAME.
  711.  
  712. FNSUBST-IF-NOT
  713. Function in LISP package:
  714. Args: (new test tree &key (key #'identity))
  715. Substitutes NEW for subtrees of TREE that do not satisfy TEST.
  716.  
  717. V*READ-DEFAULT-FLOAT-FORMAT*
  718. Variable in LISP package:
  719. The floating-point format the KCL reader uses when reading floating-point
  720. numbers that have no exponent marker or have e or E for an exponent marker.
  721. Must be one of SHORT-FLOAT, SINGLE-FLOAT, DOUBLE-FLOAT, and LONG-FLOAT.
  722.  
  723. FLOGORC2
  724. Function in LISP package:
  725. Args: (integer1 integer2)
  726. Returns the logical OR of INTEGER1 and (LOGNOT INTEGER2).
  727.  
  728. FBIT-EQV
  729. Function in LISP package:
  730. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  731. Performs a bit-wise logical EQV  on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  732. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  733. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  734.  
  735. FFILE-POSITION
  736. Function in LISP package:
  737. Args: (file-stream &optional position)
  738. Sets the file pointer of the specified file to POSITION, if POSITION is given.
  739. Otherwise, returns the current file position of the specified file.
  740.  
  741. FDEFSETF
  742. Macro in LISP package:
  743. Syntax: (defsetf access-fun {update-fun [doc] |
  744.                              lambda-list (store-var) {decl | doc}* {form}*)
  745. Defines how to SETF a generalized-variable reference of the form
  746. (ACCESS-FUN ...).  The doc-string DOC, if supplied, is saved as a SETF doc and
  747. can be retrieved by (documentation 'NAME 'setf).
  748.  
  749. (defsetf access-fun update-fun) defines an expansion from
  750. (setf (ACCESS-FUN arg1 ... argn) value) to (UPDATE-FUN arg1 ... argn value).
  751.  
  752. (defsetf access-fun lambda-list (store-var) . body) defines a macro which
  753. expands (setf (ACCESS-FUN arg1 ... argn) value) into the form
  754.     (let* ((temp1 ARG1) ... (tempn ARGn) (temp0 value)) rest)
  755. where REST is the value of BODY with parameters in LAMBDA-LIST bound to the
  756. symbols TEMP1 ... TEMPn and with STORE-VAR bound to the symbol TEMP0.
  757.  
  758. FTAGBODY
  759. Special Form in LISP package:
  760. Syntax: (tagbody {tag | statement}*)
  761. Executes STATEMENTs and returns NIL if it falls off the end.
  762.  
  763. FSTRING<
  764. Function in LISP package:
  765. Args: (string1 string2
  766.        &key (start1 0) (end1 (length string1))
  767.             (start2 0) (end2 (length string2)))
  768. If STRING1 is lexicographically less than STRING2, then returns the longest
  769. common prefix of the strings.  Otherwise, returns NIL.
  770.  
  771. FREAD-PRESERVING-WHITESPACE
  772. Function in LISP package:
  773. Args: (&optional (stream *standard-input*) (eof-error-p t) (eof-value nil)
  774.                  (recursive-p nil))
  775. Reads an object from STREAM, preserving the whitespace that followed the
  776. object.
  777.  
  778. FREVERSE
  779. Function in LISP package:
  780. Args: (sequence)
  781. Returns a new sequence containing the same elements as SEQUENCE but in
  782. reverse order.
  783.  
  784. FSTREAMP
  785. Function in LISP package:
  786. Args: (x)
  787. Returns T if X is a stream object; NIL otherwise.
  788.  
  789. VBOOLE-C2
  790. Variable in LISP package:
  791. Makes BOOLE return the complement of INTEGER2.
  792.  
  793. FALLOCATED-RELOCATABLE-PAGES
  794. Function in SI package:
  795. Args: ()
  796. KCL specific: Returns the number of pages currently allocated for relocatable
  797. blocks.
  798.  
  799. FPUTPROP
  800. Function in SI package:
  801. Args: (symbol value indicator)
  802. Give SYMBOL the VALUE on INDICATOR property.
  803.  
  804. FREMPROP
  805. Function in LISP package:
  806. Args: (symbol indicator)
  807. Look on property list of SYMBOL for property with specified
  808. INDICATOR.  If found, splice this indicator and its value out of
  809. the plist, and return T. If not found, returns NIL with no side effects.
  810. VCHAR-SUPER-BIT
  811. Variable in LISP package:
  812. The bit that indicates a super character.
  813.  
  814. FDO-ALL-SYMBOLS
  815. Macro in LISP package:
  816. Syntax: (do-all-symbols (var [result-form]) {decl}* {tag | statement}*)
  817. Executes STATEMENTs once for each symbol in each package, with VAR bound to
  818. the current symbol.  Then evaluates RESULT-FORM (which defaults to NIL) and
  819. returns the value(s).
  820.  
  821. FSYMBOL-PACKAGE
  822. Function in LISP package:
  823. Args: (symbol)
  824. Returns the contents of the package cell of the symbol SYMBOL.
  825.  
  826. FNSTRING-UPCASE
  827. Function in LISP package:
  828. Args: (string &key (start 0) (end (length string)))
  829. Returns STRING with all lower case characters converted to uppercase.
  830.  
  831. V*PACKAGE*
  832. Variable in LISP package:
  833. The current package.
  834.  
  835. FSTRING>=
  836. Function in LISP package:
  837. Args: (string1 string2
  838.        &key (start1 0) (end1 (length string1))
  839.             (start2 0) (end2 (length string2)))
  840. If STRING1 is lexicographically greater than or equal to STRING2, then returns
  841. the longest common prefix of the strings.  Otherwise, returns NIL.
  842.  
  843. FDECODE-UNIVERSAL-TIME
  844. Function in LISP package:
  845. Args: (universal-time &optional (timezone -9))
  846. Converts UNIVERSAL-TIME into a decoded time at the TIMEZONE.
  847. Returns nine values: second, minute, hour, date, month (1 - 12), year,
  848. day-of-week (0 - 6), daylight-saving-time-p, and time-zone.
  849. TIMEZONE in KCL defaults to -9, the time zone of Japan.
  850.  
  851. FREALPART
  852. Function in LISP package:
  853. Args: (number)
  854. Extracts the real part of NUMBER.
  855.  
  856. FARRAY-ROW-MAJOR-INDEX
  857. Function in LISP package:
  858. Args: (array &rest subscripts)
  859. Returns the index into the data vector of ARRAY for the element of ARRAY
  860. specified by SUBSCRIPTS.
  861.  
  862. FUSER-HOMEDIR-PATHNAME
  863. Function in LISP package:
  864. Args: (&optional host)
  865. Returns the home directory of the logged in user as a pathname.  HOST
  866. is ignored.
  867.  
  868. FNBUTLAST
  869. Function in LISP package:
  870. Args: (list &optional (n 1))
  871. Changes the cdr of the N+1 th cons from the end of the list LIST to NIL.
  872. Returns the whole list.
  873.  
  874. VCHAR-FONT-LIMIT
  875. Variable in LISP package:
  876. The upper exclusive bound on values produced by CHAR-FONT.
  877.  
  878. V*MODULES*
  879. Variable in LISP package:
  880. A list of names of the modules that have been loaded into KCL.
  881.  
  882. FSET-DISPATCH-MACRO-CHARACTER
  883. Function in LISP package:
  884. Args: (disp-char sub-char function &optional (readtable *readtable*))
  885. Causes FUNCTION to be called when the DISP-CHAR followed by SUB-CHAR is
  886. read.
  887.  
  888. FSHORT-SITE-NAME
  889. Function in LISP package:
  890. Args: ()
  891. Returns a string that identifies the physical location of the current KCL.
  892.  
  893. VBOOLE-CLR
  894. Variable in LISP package:
  895. Makes BOOLE return 0.
  896.  
  897. FARRAY-DIMENSION
  898. Function in LISP package:
  899. Args: (array axis-number)
  900. Returns the length of AXIS-NUMBER of ARRAY.
  901.  
  902. VBOOLE-IOR
  903. Variable in LISP package:
  904. Makes BOOLE return LOGIOR of INTEGER1 and INTEGER2.
  905.  
  906. FWITH-OUTPUT-TO-STRING
  907. Macro in LISP package:
  908. Syntax: (with-output-to-string (var [string]) {decl}* {form}*)
  909. Binds VAR to a string output stream that puts characters into STRING, which
  910. defaults to a new string.  The stream is automatically closed on exit and
  911. the string is returned.
  912.  
  913. FETYPECASE
  914. Macro in LISP package:
  915. Syntax: (etypecase keyform {(type {form}*)}*)
  916. Evaluates KEYFORM and tries to find the TYPE in which the value of KEYFORM
  917. belongs.  If one is found, then evaluates FORMs that follow the KEY and
  918. returns the value(s) of the last FORM.  If not, signals an error.
  919.  
  920. FCDR
  921. Function in LISP package:
  922. Args: (list)
  923. Returns the cdr of LIST.  Returns NIL if LIST is NIL.
  924.  
  925. FFTRUNCATE
  926. Function in LISP package:
  927. Args: (number &optional (divisor 1))
  928. Values: (quotient remainder)
  929. Same as TRUNCATE, but returns first value as a float.
  930.  
  931. FEQL
  932. Function in LISP package:
  933. Args: (x y)
  934. Returns T if X and Y are EQ, or if they are numbers of the same type with
  935. the same value, or if they are character objects that represent the same
  936. character.  Returns NIL otherwise.
  937.  
  938. FLOG
  939. Function in LISP package:
  940. Args: (number &optional base)
  941. Returns the logarithm of NUMBER in the base BASE.  BASE defaults to the base
  942. of natural logarithms.
  943.  
  944. FDIRECTORY
  945. Function in LISP package:
  946. Args: (name)
  947. Returns a list of files that match NAME.  NAME may be a string, a pathname,
  948. or a file stream.
  949.  
  950. FSTRING-NOT-EQUAL
  951. Function in LISP package:
  952. Args: (string1 string2
  953.        &key (start1 0) (end1 (length string1))
  954.             (start2 0) (end2 (length string2)))
  955. Similar to STRING=, but ignores cases.
  956.  
  957. VDOUBLE-FLOAT-NEGATIVE-EPSILON
  958. Variable in LISP package:
  959. Same as LONG-FLOAT-NEGATIVE-EPSILON.
  960.  
  961. FLET*
  962. Special Form in LISP package:
  963. Syntax: (let* ({var | (var [value])}*) {decl}* {form}*)
  964. Initializes VARs, binding them to the values of VALUEs (which defaults to NIL)
  965. from left to right, then evaluates FORMs as a PROGN.
  966.  
  967. FSHADOWING-IMPORT
  968. Function in LISP package:
  969. Args: (symbols &optional (package *package*))
  970. Imports SYMBOLS into PACKAGE, disregarding any name conflict.  If a symbol
  971. of the same name is already present, then it is uninterned.  SYMBOLS must
  972. be a list of symbols or a symbol.
  973.  
  974. FFIND
  975. Function in LISP package:
  976. Args: (item sequence
  977.        &key (from-end nil) (test #'eql) test-not (start 0)
  978.             (end (length sequence)) (key #'identity))
  979. Returns the first element in SEQUENCE satisfying TEST with ITEM; NIL if no
  980. such element exists.
  981.  
  982. FMAPC
  983. Function in LISP package:
  984. Args: (fun list &rest more-lists)
  985. Applies FUN to successive cars of LISTs.  Returns the first LIST.
  986.  
  987. FSOFTWARE-VERSION
  988. Function in LISP package:
  989. Args: ()
  990. Returns a string that identifies the software version of the software
  991. under which KCL is currently running.
  992.  
  993. FREMF
  994. Macro in LISP package:
  995. Syntax: (remf place indicator)
  996. PLACE may be any place expression acceptable to SETF, and is expected
  997. to hold a property list or NIL.  This list is destructively altered to
  998. remove the property specified by INDICATOR.  Returns T if such a
  999. property was present; NIL otherwise.
  1000.  
  1001. FMAPL
  1002. Function in LISP package:
  1003. Args: (fun list &rest more-lists)
  1004. Applies FUN to successive cdrs of LISTs.  Returns the first LIST.
  1005.  
  1006. FMAKUNBOUND
  1007. Function in LISP package:
  1008. Args: (symbol)
  1009. Makes empty the value slot of SYMBOL.  Returns SYMBOL.
  1010.  
  1011. FCONS
  1012. Function in LISP package:
  1013. Args: (x y)
  1014. Returns a new cons whose car and cdr are X and Y, respectively.
  1015.  
  1016. FSTEP
  1017. Macro in LISP package:
  1018. Syntax: (step form)
  1019. Evaluates FORM in the single-step mode and returns the value.
  1020.  
  1021. FLIST
  1022. Function in LISP package:
  1023. Args: (&rest args)
  1024. Returns a list of its arguments
  1025.  
  1026. FYES-OR-NO-P
  1027. Function in LISP package:
  1028. Args: (&optional (format-string nil) &rest args)
  1029. Asks the user a question whose answer is either 'YES' or 'NO'.  If FORMAT-
  1030. STRING is non-NIL, then FRESH-LINE operation is performed, a message is
  1031. printed as if FORMAT-STRING and ARGs were given to FORMAT, and then a prompt
  1032. "(Yes or No)" is printed.  Otherwise, no prompt will appear.
  1033.  
  1034. FUSE-PACKAGE
  1035. Function in LISP package:
  1036. Args: (packages-to-use &optional (package *package*))
  1037. Adds all packages in PACKAGE-TO-USE list to the use list for PACKAGE so that
  1038. the external symbols of the used packages are available as internal symbols
  1039. in PACKAGE.
  1040.  
  1041. FFILE-LENGTH
  1042. Function in LISP package:
  1043. Args: (file-stream)
  1044. Returns the length of the specified file stream.
  1045.  
  1046. VINTERNAL-TIME-UNITS-PER-SECOND
  1047. Variable in LISP package:
  1048. The number of internal time units that fit into a second.
  1049.  
  1050. FMAKE-SYMBOL
  1051. Function in LISP package:
  1052. Args: (string)
  1053. Creates and returns a new uninterned symbol whose print name is STRING.
  1054.  
  1055. FSTRING-RIGHT-TRIM
  1056. Function in LISP package:
  1057. Args: (char-bag string)
  1058. Returns a copy of STRING with the characters in CHAR-BAG removed from the
  1059. right end.
  1060.  
  1061. FENOUGH-NAMESTRING
  1062. Function in LISP package:
  1063. Args: (pathname &optional (defaults *default-pathname-defaults*))
  1064. Returns a string which uniquely identifies PATHNAME with respect to
  1065. DEFAULTS.
  1066.  
  1067. FPROG1
  1068. Special Form in LISP package:
  1069. Syntax: (prog1 first {form}*)
  1070. Evaluates FIRST and FORMs in order, and returns the (single) value of FIRST.
  1071.  
  1072. V*PRINT-CASE*
  1073. Variable in LISP package:
  1074. The case in which the KCL printer should print ordinary symbols.
  1075. The value must be one of the keywords :UPCASE, :DOWNCASE, and :CAPITALIZE.
  1076.  
  1077. FDEFUN
  1078. Special Form in LISP package:
  1079. Syntax: (defun name lambda-list {decl | doc}* {form}*)
  1080. Defines a function as the global function definition of the symbol NAME.
  1081. The complete syntax of a lambda-list is:
  1082.     ({var}*
  1083.      [&optional {var | (var [initform [svar]])}*]
  1084.      [&rest var]
  1085.      [&key {var | ({var | (keyword var)} [initform [svar]])}*
  1086.            [&allow-other-keys]]
  1087.      [&aux {var | (var [initform])}*])
  1088. The doc-string DOC, if supplied, is saved as a FUNCTION doc and can be
  1089. retrieved by (documentation 'NAME 'function).
  1090.  
  1091. FTHIRD
  1092. Function in LISP package:
  1093. Args: (x)
  1094. Equivalent to (CADDR X).
  1095.  
  1096. FPSETQ
  1097. Special Form in LISP package:
  1098. Syntax: (psetq {var form}*)
  1099. Similar to SETQ, but evaluates all FORMs first, and then assigns each value to
  1100. the corresponding VAR.  Returns NIL always.
  1101.  
  1102. FPRINT
  1103. Function in LISP package:
  1104. Args: (object &optional (stream *standard-output*))
  1105. Outputs a newline character, and then prints OBJECT in the mostly readable
  1106. representation.  Returns OBJECT.  Equivalent to
  1107.     (PROGN (TERPRI STREAM) (WRITE OBJECT :STREAM STREAM :ESCAPE T)).
  1108.  
  1109. FCDDAAR
  1110. Function in LISP package:
  1111. Args: (x)
  1112. Equivalent to (CDR (CDR (CAR (CAR X)))).
  1113.  
  1114. FCDADAR
  1115. Function in LISP package:
  1116. Args: (x)
  1117. Equivalent to (CDR (CAR (CDR (CAR X)))).
  1118.  
  1119. FCDAADR
  1120. Function in LISP package:
  1121. Args: (x)
  1122. Equivalent to (CDR (CAR (CAR (CDR X)))).
  1123.  
  1124. FCADDAR
  1125. Function in LISP package:
  1126. Args: (x)
  1127. Equivalent to (CAR (CDR (CDR (CAR X)))).
  1128.  
  1129. FCADADR
  1130. Function in LISP package:
  1131. Args: (x)
  1132. Equivalent to (CAR (CDR (CAR (CDR X)))).
  1133.  
  1134. FCAADDR
  1135. Function in LISP package:
  1136. Args: (x)
  1137. Equivalent to (CAR (CAR (CDR (CDR X)))).
  1138.  
  1139. FCOERCE
  1140. Function in LISP package:
  1141. Args: (x type)
  1142. Coerces X to an object of the type TYPE.
  1143.  
  1144. FSET-MACRO-CHARACTER
  1145. Function in LISP package:
  1146. Args: (char function
  1147.        &optional (non-terminating-p nil) (readtable *readtable*))
  1148. Causes CHAR to be a macro character that, when seen by READ, causes FUNCTION
  1149. to be called.
  1150.  
  1151. FAPROPOS-LIST
  1152. Function in LISP package:
  1153. Args: (string &optional (package nil))
  1154. Returns, as a list, all symbols whose print-names contain STRING as substring.
  1155. If PACKAGE is non-NIL, then only the specified package is searched.
  1156.  
  1157. FFORCE-OUTPUT
  1158. Function in LISP package:
  1159. Args: (&optional (stream *standard-output*))
  1160. Attempts to force any buffered output to be sent.
  1161.  
  1162. FNTHCDR
  1163. Function in LISP package:
  1164. Args: (n list)
  1165. Returns the result of performing the CDR operation N times on LIST.
  1166.  
  1167. FDELETE-IF-NOT
  1168. Function in LISP package:
  1169. Args: (test sequence
  1170.        &key (from-end nil) (start 0) (end (length sequence))
  1171.             (count most-positive-fixnum) (key #'identity))
  1172. Returns a sequence formed by destructively removing the elements not
  1173. satisfying TEST from SEQUENCE.
  1174.  
  1175. V*PRINT-ARRAY*
  1176. Variable in LISP package:
  1177. Whether the KCL printer should print array elements.
  1178.  
  1179. FLOGIOR
  1180. Function in LISP package:
  1181. Args: (&rest integers)
  1182. Returns the bit-wise INCLUSIVE OR of its arguments.
  1183.  
  1184. V*BREAK-ENABLE*
  1185. Variable in LISP package:
  1186. KCL specific:  When an error occurrs, control enters to the break loop only
  1187. if the value of this variable is non-NIL.
  1188.  
  1189. FMULTIPLE-VALUE-BIND
  1190. Special Form in LISP package:
  1191. Syntax: (multiple-value-bind ({var}*) values-form {decl}* {form}*)
  1192. Binds the VARiables to the results of VALUES-FORM, in order (defaulting to
  1193. NIL) and evaluates FORMs in order.
  1194.  
  1195. FCHAR-DOWNCASE
  1196. Function in LISP package:
  1197. Args: (char)
  1198. Returns the lower-case equivalent of CHAR, if any.
  1199. If not, simply returns CHAR.
  1200.  
  1201. FSTRING-CHAR-P
  1202. Function in LISP package:
  1203. Args: (char)
  1204. Returns T if CHAR can be stored in a string.  In KCL, this function always
  1205. returns T since any character in KCL can be stored in a string.
  1206.  
  1207. FREMOVE-IF-NOT
  1208. Function in LISP package:
  1209. Args: (test sequence
  1210.        &key (from-end nil) (start 0) (end (length sequence))
  1211.             (count most-positive-fixnum) (key #'identity))
  1212. Returns a copy of SEQUENCE with elements not satisfying TEST removed.
  1213.  
  1214. FSTREAM-ELEMENT-TYPE
  1215. Function in LISP package:
  1216. Args: (stream)
  1217. Returns a type specifier for the kind of object returned by STREAM.
  1218.  
  1219. FDECLARE
  1220. Special Form in LISP package:
  1221. Syntax: (declare {decl-spec}*)
  1222. Gives a declaration.  Possible DECL-SPECs are:
  1223.   (SPECIAL {var}*)
  1224.   (TYPE type {var}*)
  1225.      where 'TYPE' is one of the following symbols
  1226.     array        fixnum        package        simple-bit-vector
  1227.     atom        float        pathname    simple-string
  1228.     bignum        function    random-state    simple-vector
  1229.     bit        hash-table    ratio        single-float
  1230.     bit-vector    integer        rational    standard-char
  1231.     character    keyword        readtable    stream
  1232.     common        list        sequence    string
  1233.     compiled-function  long-float    short-float    string-char
  1234.     complex        nil        signed-byte    symbol
  1235.     cons        null        unsigned-byte    t
  1236.     double-float    number        simple-array    vector
  1237.     'TYPE' may also be a list containing one of the above symbols as
  1238.    its first element and more specific information later in the list.
  1239.    eg:  (vector long-float 80) ; vector of 80 long-floats.
  1240.         (array long-float *)   ; array of long-floats
  1241.         (array fixnum)         ; array of fixnums
  1242.         (array * 30)           ; an array of length 30 but unspecified type
  1243.      A list of 1 element may be replaced by the symbol alone, and a list ending
  1244.      in '*' may drop the the final  '*'.
  1245.   (OBJECT {var}*)
  1246.   (FTYPE type {function-name}*)
  1247.       eg: ;; function of two required args and optional args and one value:
  1248.        (ftype (function (t t *) t) sort reduce)
  1249.           ;; function with 1 arg of general type returning 1 fixnum as value.
  1250.        (ftype (function (t) fixnum) length)
  1251.   (FUNCTION function-name ({arg-type}*) {return-type}*)
  1252.   (INLINE {function-name}*)
  1253.   (NOTINLINE {function-name}*)
  1254.   (IGNORE {var}*)
  1255.   (OPTIMIZE {({SPEED | SPACE | SAFETY | COMPILATION-SPEED} {0 | 1 | 2 | 3})}*)
  1256.   (DECLARATION {non-standard-decl-name}*)
  1257.   (:DYNAMIC-EXTENT {var}*) ;kcl-specific.
  1258.  
  1259.  
  1260.  
  1261. .
  1262.  
  1263. TOPTIMIZE
  1264. If the file misc/warn-slow.lisp is loaded then the compiler emits
  1265. warnings about some slow constructs.   Additional constructs can 
  1266. easily be added or deleted by editing the beginning of this file.
  1267.  
  1268.  
  1269. FPACKAGE-USED-BY-LIST
  1270. Function in LISP package:
  1271. Args: (package)
  1272. Returns the list of packages that use PACKAGE.
  1273.  
  1274. VMOST-NEGATIVE-DOUBLE-FLOAT
  1275. Variable in LISP package:
  1276. Same as MOST-NEGATIVE-LONG-FLOAT.
  1277.  
  1278. F/
  1279. Function in LISP package:
  1280. Args: (number &rest more-numbers)
  1281. Divides the first NUMBER by each of the subsequent NUMBERS.
  1282. With one arg, returns the reciprocal of the number.
  1283.  
  1284. V/
  1285. Variable in LISP package:
  1286. Holds a list of the values of the last top-level form.
  1287.  
  1288. FMAPHASH
  1289. Function in LISP package:
  1290. Args: #'hash-table
  1291. For each entry in HASH-TABLE, calls FUNCTION on the key and value of the
  1292. entry; returns NIL.
  1293.  
  1294. V*RANDOM-STATE*
  1295. Variable in LISP package:
  1296. The default random-state object used by RAMDOM.
  1297.  
  1298. FSTRING=
  1299. Function in LISP package:
  1300. Args: (string1 string2
  1301.        &key (start1 0) (end1 (length string1))
  1302.             (start2 0) (end2 (length string2)))
  1303. Returns T if the two strings are character-wise CHAR=; NIL otherwise.
  1304.  
  1305. FPAIRLIS
  1306. Function in LISP package:
  1307. Args: (keys data &optional (alist nil))
  1308. Constructs an association list from KEYS and DATA adding to ALIST.
  1309.  
  1310. FREQUIRE
  1311. Function in LISP package:
  1312. Args: (module-name &optional (pathname))
  1313. If the specified module is not present, then loads the appropriate file(s).
  1314. PATHNAME may be a single pathname or it may be a list of pathnames.
  1315.  
  1316. FSEVENTH
  1317. Function in LISP package:
  1318. Args: (x)
  1319. Equivalent to (CADDR (CDDDDR X)).
  1320.  
  1321. FSUBSETP
  1322. Function in LISP package:
  1323. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  1324. Returns T if every element of LIST1 appears in LIST2; NIL otherwise.
  1325.  
  1326. FSYMBOLP
  1327. Function in LISP package:
  1328. Args: (x)
  1329. Returns T if X is a symbol; NIL otherwise.
  1330.  
  1331. FCHAR-NOT-LESSP
  1332. Function in LISP package:
  1333. Args: (char &rest more-chars)
  1334. Returns T if the codes of CHARs are in strictly non-increasing order; NIL
  1335. otherwise.  For a lower-case character, the code of its upper-case equivalent
  1336. is used.
  1337.  
  1338. F1+
  1339. Function in LISP package:
  1340. Args: (number)
  1341. Returns NUMBER + 1.
  1342.  
  1343. VLEAST-NEGATIVE-DOUBLE-FLOAT
  1344. Variable in LISP package:
  1345. Same as LEAST-NEGATIVE-LONG-FLOAT.
  1346.  
  1347. FFCEILING
  1348. Function in LISP package:
  1349. Args: (number &optional (divisor 1))
  1350. Same as CEILING, but returns a float as the first value.
  1351.  
  1352. FDESCRIBE
  1353. Function in LISP package:
  1354. Args: (x)
  1355. Prints a description of the object X.
  1356.  
  1357. FDEFMACRO
  1358. Special Form in LISP package:
  1359. Syntax: (defmacro name defmacro-lambda-list {decl | doc}* {form}*)
  1360. Defines a macro as the global macro definition of the symbol NAME.
  1361. The complete syntax of a defmacro-lambda-list is:
  1362.  
  1363. ( [&whole var]
  1364.   [&environment var]
  1365.   {pseudo-var}*
  1366.   [&optional {var | (pseudo-var [initform [pseudo-var]])}*]
  1367.   {[{&rest | &body} pseudo-var]
  1368.    [&key {var | ({var | (keyword pseudo-var)} [initform [pseudo-var]])}*
  1369.          [&allow-other-keys]]
  1370.    [&aux {var | (pseudo-var [initform])}*]
  1371.   |  . var})
  1372.  
  1373. where pseudo-var is either a symbol or a list of the following form:
  1374.  
  1375. ( {pseudo-var}*
  1376.   [&optional {var | (pseudo-var [initform [pseudo-var]])}*]
  1377.   {[{&rest | &body} pseudo-var]
  1378.    [&key {var | ({var | (keyword pseudo-var)} [initform [pseudo-var]])}*
  1379.          [ &allow-other-keys ] ]
  1380.    [&aux {var | (pseudo-var [initform])}*]
  1381.   |  . var})
  1382.  
  1383. As a special case, a non-NIL symbol is accepcted as a defmacro-lambda-list:
  1384. (DEFMACRO <name> <symbol> ...) is equivalent to
  1385. (DEFMACRO <name> (&REST <symbol>) ...).
  1386.      The doc-string DOC, if supplied, is saved as a FUNCTION doc and can be
  1387. retrieved by (documentation 'NAME 'function).
  1388. See the type doc of LIST for the backquote macro useful for defining macros.
  1389. Also, see the function doc of PPRINT for the output-formatting.
  1390.  
  1391. FED
  1392. Function in LISP package:
  1393. Args: (&optional x)
  1394. Invokes the editor.  The action depends on the version of KCL.  See the
  1395. KCL Report for details.
  1396.  
  1397. VMOST-POSITIVE-FIXNUM
  1398. Variable in LISP package:
  1399. The fixnum closest in value to positive infinity.
  1400.  
  1401. FNSUBSTITUTE-IF
  1402. Function in LISP package:
  1403. Args: (new test sequence
  1404.        &key (from-end nil) (start 0) (end (length sequence))
  1405.             (count most-positive-fixnum) (key #'identity))
  1406. Returns a sequence of the same kind as SEQUENCE with the same elements
  1407. except that all elements satisfying TEST are replaced with NEWITEM.  SEQUENCE
  1408. may be destroyed.
  1409.  
  1410. FBIT-ANDC1
  1411. Function in LISP package:
  1412. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  1413. Performs a bit-wise logical ANDC1 on the elements of BIT-ARRAY1 and
  1414. BIT-ARRAY2.
  1415. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  1416. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  1417.  
  1418. FALLOCATED-PAGES
  1419. Function in SI package:
  1420. Args: (type)
  1421. KCL specific: Returns the number of pages currently allocated for the type
  1422. class of the KCL implementation type TYPE.
  1423.  
  1424. FENCODE-UNIVERSAL-TIME
  1425. Function in LISP package:
  1426. Args: (second minute hour date month year &optional (timezone -9))
  1427. Does the inverse operation of DECODE-UNIVERSAL-TIME.
  1428.  
  1429. FBY
  1430. Function in LISP package:
  1431. Args: ()
  1432. KCL specific: Exits from KCL.
  1433.  
  1434. FLISP-IMPLEMENTATION-VERSION
  1435. Function in LISP package:
  1436. Args: ()
  1437. Returns a string that tells you when the current KCL implementation is
  1438. brought up.
  1439.  
  1440. V*DEBUG-IO*
  1441. Variable in LISP package:
  1442. Holds the I/O stream used by the KCL debugger.
  1443.  
  1444. FNSUBST-IF
  1445. Function in LISP package:
  1446. Args: (new test tree &key (key #'identity))
  1447. Substitutes NEW for subtrees of TREE that satisfy TEST.
  1448.  
  1449. FCOPY-LIST
  1450. Function in LISP package:
  1451. Args: (list)
  1452. Returns a new copy of LIST.
  1453.  
  1454. FTAN
  1455. Function in LISP package:
  1456. Args: (radians)
  1457. Returns the tangent of RADIANS.
  1458.  
  1459. VNIL
  1460. Variable in LISP package:
  1461. Holds NIL.
  1462.  
  1463. FMACHINE-INSTANCE
  1464. Function in LISP package:
  1465. Args: ()
  1466. Returns a string that identifies the machine instance of the machine
  1467. on which KCL is currently running.
  1468.  
  1469. FSET
  1470. Function in LISP package:
  1471. Args: (symbol value)
  1472. Assigns the value of VALUE to the dynamic variable named by SYMBOL, and
  1473. returns the value assigned.
  1474.  
  1475. V*EVALHOOK*
  1476. Variable in LISP package:
  1477. If *EVALHOOK* is not NIL, its value must be a function that can receive
  1478. two arguments: a form to evaluate and an environment.  This function does
  1479. the evaluation instead of EVAL.
  1480.  
  1481. FFUNCTIONP
  1482. Function in LISP package:
  1483. Args: (x)
  1484. Returns T if X is a function, suitable for use by FUNCALL or APPLY.  Returns
  1485. NIL otherwise.
  1486.  
  1487. VBOOLE-NAND
  1488. Variable in LISP package:
  1489. Makes BOOLE return LOGNAND of INTEGER1 and INTEGER2.
  1490.  
  1491. VLAMBDA-PARAMETERS-LIMIT
  1492. Variable in LISP package:
  1493. The exclusive upper bound on the number of distinct parameter names that may
  1494. appear in a single lambda-list.  Actually, however, there is no such upper
  1495. bound in KCL.
  1496.  
  1497. FWRITE-BYTE
  1498. Function in LISP package:
  1499. Args: (integer stream)
  1500. Outputs INTEGER to the binary stream STREAM.  Returns INTEGER.
  1501.  
  1502. FTANH
  1503. Function in LISP package:
  1504. Args: (number)
  1505. Returns the hyperbolic tangent of NUMBER.
  1506.  
  1507. FASIN
  1508. Function in LISP package:
  1509. Args: (number)
  1510. Returns the arc sine of NUMBER.
  1511.  
  1512. FFLET
  1513. Special Form in LISP package:
  1514. Syntax: (flet ({(name lambda-list {decl | doc}* {form}*)}*) . body)
  1515. Evaluates BODY as a PROGN, with local function definitions in effect.  BODY is
  1516. the scope of each local function definition.  Since the scope does not include
  1517. the function definitions themselves, the local function can reference
  1518. externally defined functions of the same name.  See the doc of DEFUN for the
  1519. complete syntax of a lambda-list.  Doc-strings for local functions are simply
  1520. ignored.
  1521.  
  1522. FSOME
  1523. Function in LISP package:
  1524. Args: (predicate sequence &rest more-sequences)
  1525. Returns T if at least one of the elements in SEQUENCEs satisfies PREDICATE;
  1526. NIL otherwise.
  1527.  
  1528. FBYTE
  1529. Function in LISP package:
  1530. Args: (size position)
  1531. Returns a byte specifier.  In KCL, a byte specifier is represented by
  1532. a dotted pair (<size> . <position>).
  1533.  
  1534. FLAST
  1535. Function in LISP package:
  1536. Args: (list)
  1537. Returns the last cons in LIST
  1538.  
  1539. FROOM
  1540. Function in LISP package:
  1541. Args: (&optional (x t))
  1542. Displays information about storage allocation in the following format.
  1543.  
  1544. * for each type class
  1545.     * the number of pages so-far allocated for the type class
  1546.     * the maximum number of pages for the type class
  1547.     * the percentage of used cells to cells so-far allocated
  1548.     * the number of times the garbage collector has been called to
  1549.       collect cells of the type class
  1550.     * the implementation types that belongs to the type class
  1551. * the number of pages actually allocated for contiguous blocks
  1552. * the maximum number of pages for contiguous blocks
  1553. * the number of times the garbage collector has been called to collect
  1554.   contiguous blocks
  1555. * the number of pages in the hole
  1556. * the maximum number of pages for relocatable blocks
  1557. * the number of times the garbage collector has been called to collect
  1558.   relocatable blocks
  1559. * the total number of pages allocated for cells
  1560. * the total number of pages allocated
  1561. * the number of available pages
  1562. * the number of pages KCL can use.
  1563.  
  1564. The number of times the garbage collector has been called is not shown,
  1565. if the number is zero.  The optional X is ignored.
  1566.  
  1567. FSETQ
  1568. Special Form in LISP package:
  1569. Syntax: (setq {var form}*)
  1570. VARs are not evaluated and must be symbols.  Assigns the value of the first
  1571. FORM to the first VAR, then assigns the value of the second FORM to the second
  1572. VAR, and so on.  Returns the last value assigned.
  1573.  
  1574. FMAKE-STRING
  1575. Function in LISP package:
  1576. Args: (size &key (initial-element #\Space))
  1577. Creates and returns a new string of SIZE length whose elements are all
  1578. INITIAL-ELEMENT.
  1579.  
  1580. FCAAAR
  1581. Function in LISP package:
  1582. Args: (x)
  1583. Equivalent to (CAR (CAR (CAR X))).
  1584.  
  1585. FMAKE-CONCATENATED-STREAM
  1586. Function in LISP package:
  1587. Args: (&rest streams)
  1588. Returns a stream which takes its input from each of the STREAMs in turn,
  1589. going on to the next at end of stream.
  1590.  
  1591. FECASE
  1592. Macro in LISP package:
  1593. Syntax: (ecase keyform {({key | ({key}*)} {form}*)}*)
  1594. Evaluates KEYFORM and tries to find the KEY that is EQL to the value of
  1595. KEYFORM.  If one is found, then evaluates FORMs that follow the KEY and
  1596. returns the value(s) of the last FORM.  If not, signals an error.
  1597.  
  1598. FLIST-LENGTH
  1599. Function in LISP package:
  1600. Args: (list)
  1601. Returns the length of LIST, or NIL if LIST is circular.
  1602.  
  1603. FCDDDR
  1604. Function in LISP package:
  1605. Args: (x)
  1606. Equivalent to (CDR (CDR (CDR X))).
  1607.  
  1608. FPROG2
  1609. Special Form in LISP package:
  1610. Syntax: (prog2 first second {forms}*)
  1611. Evaluates FIRST, SECOND, and FORMs in order, and returns the (single) value
  1612. of SECOND.
  1613.  
  1614. FPRIN1
  1615. Function in LISP package:
  1616. Args: (object &optional (stream *standard-output*))
  1617. Prints OBJECT in the mostly readable representation.  Returns OBJECT.
  1618. Equivalent to (WRITE OBJECT :STREAM STREAM :ESCAPE T).
  1619.  
  1620. FASINH
  1621. Function in LISP package:
  1622. Args: (number)
  1623. Returns the hyperbolic arc sine of NUMBER.
  1624.  
  1625. FPRINC
  1626. Function in LISP package:
  1627. Args: (object &optional (stream *standard-output*))
  1628. Prints OBJECT without escape characters.  Returns OBJECT.  Equivalent to
  1629.     (WRITE OBJECT :STREAM STREAM :ESCAPE NIL).
  1630.  
  1631. FPROGV
  1632. Special Form in LISP package:
  1633. Syntax: (progv symbols values {form}*)
  1634. SYMBOLS must evaluate to a list of variables.  VALUES must evaluate to a list
  1635. of initial values.  Evaluates FORMs as a PROGN, with each variable bound (as
  1636. special) to the corresponding value.
  1637.  
  1638. FLOWER-CASE-P
  1639. Function in LISP package:
  1640. Args: (char)
  1641. Returns T if CHAR is a lower-case character; NIL otherwise.
  1642.  
  1643. VMOST-POSITIVE-LONG-FLOAT
  1644. Variable in LISP package:
  1645. The long-float closest in value to positive infinity.
  1646.  
  1647. FQUOTE
  1648. Special Form in LISP package:
  1649. Syntax: (quote x) or 'x
  1650. Simply returns X without evaluating it.
  1651.  
  1652. V*BREAK-ON-WARNINGS*
  1653. Variable in LISP package:
  1654. When the function WARN is called, control enters to the break loop only
  1655. if the value of this varialbe is non-NIL.
  1656.  
  1657. FGET-UNIVERSAL-TIME
  1658. Function in LISP package:
  1659. Args: ()
  1660. Returns the current time as a single integer in universal time format.
  1661.  
  1662. FNSUBSTITUTE
  1663. Function in LISP package:
  1664. Args: (newitem olditem sequence
  1665.        &key (from-end nil) (test #'eql) test-not (start 0)
  1666.             (end (length sequence)) (count most-positive-fixnum)
  1667.             (key #'identity))
  1668. Returns a sequence of the same kind as SEQUENCE with the same elements
  1669. except that OLDITEMs are replaced with NEWITEM.  SEQUENCE may be destroyed.
  1670.  
  1671. FCHAR<=
  1672. Function in LISP package:
  1673. Args: (char &rest more-chars)
  1674. Returns T if the codes of CHARs are in strictly non-decreasing order; NIL
  1675. otherwise.
  1676.  
  1677. FSTRING-EQUAL
  1678. Function in LISP package:
  1679. Args: (string1 string2
  1680.        &key (start1 0) (end1 (length string1))
  1681.             (start2 0) (end2 (length string2)))
  1682. Given two strings (string1 and string2), and optional integers start1,
  1683. start2, end1 and end2, compares characters in string1 to characters in
  1684. string2 (using char-equal).
  1685.  
  1686. FCLEAR-OUTPUT
  1687. Function in LISP package:
  1688. Args: (&optional (stream *standard-output*))
  1689. Clears the output stream STREAM.
  1690.  
  1691. FSHIFTF
  1692. Macro in LISP package:
  1693. Syntax: (shiftf {place}+ newvalue)
  1694. Evaluates all PLACEs and NEWVALUE in turn, then assigns the value of each
  1695. form to the PLACE on its left.  Returns the original value of the leftmost
  1696. form.
  1697.  
  1698. VLEAST-POSITIVE-LONG-FLOAT
  1699. Variable in LISP package:
  1700. The positive long-float closest in value to zero.
  1701.  
  1702. FINTERSECTION
  1703. Function in LISP package:
  1704. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  1705. Returns the intersection of List1 and List2.
  1706.  
  1707. FCERROR
  1708. Function in LISP package:
  1709. Args: (continue-format-string error-format-string &rest args)
  1710. Signals a correctable error.
  1711.  
  1712. FTERPRI
  1713. Function in LISP package:
  1714. Args: (&optional (stream *standard-output*))
  1715. Outputs a newline character.
  1716.  
  1717. FNSUBST
  1718. Function in LISP package:
  1719. Args: (new old tree &key (test #'eql) test-not (key #'identity))
  1720. Substitutes NEW for subtrees in TREE that match OLD.
  1721.  
  1722. FDEPOSIT-FIELD
  1723. Function in LISP package:
  1724. Args: (newbyte bytespec integer)
  1725. Returns an integer computed by replacing the specified byte of INTEGER with
  1726. the specified byte of NEWBYTE.
  1727.  
  1728. FBIT-AND
  1729. Function in LISP package:
  1730. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  1731. Performs a bit-wise logical AND on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  1732. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  1733. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  1734.  
  1735. FUNUSE-PACKAGE
  1736. Function in LISP package:
  1737. Args: (packages-to-unuse &optional (package *package*))
  1738. Removes PACKAGES-TO-UNUSE from the use list for PACKAGE.
  1739.  
  1740. FSTRING-NOT-GREATERP
  1741. Function in LISP package:
  1742. Args: (string1 string2
  1743.        &key (start1 0) (end1 (length string1))
  1744.             (start2 0) (end2 (length string2)))
  1745. Similar to STRING<=, but ignores cases.
  1746.  
  1747. FLOGNAND
  1748. Function in LISP package:
  1749. Args: (integer1 integer2)
  1750. Returns the complement of the logical AND of INTEGER1 and INTEGER2.
  1751.  
  1752. FBYTE-POSITION
  1753. Function in LISP package:
  1754. Args: (bytespec)
  1755. Returns the position part (in KCL, the cdr part) of the byte specifier.
  1756.  
  1757. FROTATEF
  1758. Macro in LISP package:
  1759. Syntax: (rotatef {place}*)
  1760. Evaluates PLACEs in turn, then assigns to each PLACE the value of the form to
  1761. its right.  The rightmost PLACE gets the value of the leftmost PLACE.
  1762. Returns NIL always.
  1763.  
  1764. FDOTIMES
  1765. Special Form in LISP package:
  1766. Syntax: (dotimes (var countform [result]) {decl}* {tag | statement}*)
  1767. Executes STATEMENTs, with VAR bound to each number between 0 (inclusive) and
  1768. the value of COUNTFORM (exclusive).  Then returns the value(s) of RESULT
  1769. (which defaults to NIL).
  1770.  
  1771. FSTRING>
  1772. Function in LISP package:
  1773. Args: (string1 string2
  1774.        &key (start1 0) (end1 (length string1))
  1775.             (start2 0) (end2 (length string2)))
  1776. If STRING1 is lexicographically greater than STRING2, then returns the
  1777. longest common prefix of the strings.  Otherwise, returns NIL.
  1778.  
  1779. FFINISH-OUTPUT
  1780. Function in LISP package:
  1781. Args: (&optional (stream *standard-output*))
  1782. Attempts to ensure that all output sent to STREAM has reached its destination,
  1783. and only then returns.
  1784.  
  1785. FSPECIAL-FORM-P
  1786. Function in LISP package:
  1787. Args: (symbol)
  1788. Returns T if SYMBOL globally names a special form; NIL otherwise.
  1789. The special forms defined in Steele's manual are:
  1790.  
  1791.     block        if            progv
  1792.     catch        labels            quote
  1793.     compiler-let    let            return-from
  1794.     declare        let*            setq
  1795.     eval-when    macrolet        tagbody
  1796.     flet        multiple-value-call    the
  1797.     function    multiple-value-prog1    throw
  1798.     go        progn            unwind-protect
  1799.  
  1800. In addition, KCL implements the following macros as special forms, though
  1801. of course macro-expanding functions such as MACROEXPAND work correctly for
  1802. these macros.
  1803.  
  1804.     and        incf            prog1
  1805.     case        locally            prog2
  1806.     cond        loop            psetq
  1807.     decf        multiple-value-bind    push
  1808.     defmacro    multiple-value-list    return
  1809.     defun        multiple-value-set    setf
  1810.     do        or            unless
  1811.     do*        pop            when
  1812.     dolist        prog
  1813.     dotimes        prog* 
  1814.  
  1815. VCHAR-HYPER-BIT
  1816. Variable in LISP package:
  1817. The bit that indicates a hyper character.
  1818.  
  1819. VT
  1820. Variable in LISP package:
  1821. Holds T.
  1822.  
  1823. FWITH-OPEN-FILE
  1824. Macro in LISP package:
  1825. Syntax: (with-open-file (stream filename {options}*) {decl}* {form}*)
  1826. Opens the file whose name is FILENAME, using OPTIONs, and binds the variable
  1827. STREAM to a stream to/from the file.  Then evaluates FORMs as a PROGN.
  1828. The file is automatically closed on exit.
  1829.  
  1830. V**
  1831. Variable in LISP package:
  1832. Gets the previous value of * when KCL evaluates a top-level form.
  1833.  
  1834. FSTRINGP
  1835. Function in LISP package:
  1836. Args: (x)
  1837. Returns T if X is a string; NIL otherwise.
  1838.  
  1839. V+++
  1840. Variable in LISP package:
  1841. Gets the previous value of ++ when KCL evaluates a top-level form.
  1842.  
  1843. FBIT-ANDC2
  1844. Function in LISP package:
  1845. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  1846. Performs a bit-wise logical ANDC2 on the elements of BIT-ARRAY1 and
  1847. BIT-ARRAY2.
  1848. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  1849. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  1850.  
  1851. FDO
  1852. Special Form in LISP package:
  1853. Syntax: (do ({(var [init [step]])}*) (endtest {result}*)
  1854.           {decl}* {tag | statement}*)
  1855. Creates a NIL block, binds each VAR to the value of the corresponding INIT,
  1856. and then executes STATEMENTs repeatedly until ENDTEST is satisfied.  After
  1857. each iteration, assigns to each VAR the value of the corresponding STEP.  When
  1858. ENDTEST is satisfied, evaluates RESULTs as a PROGN and returns the value(s) of
  1859. the last RESULT (or NIL if no RESULTs are supplied).  Performs variable
  1860. bindings and assignments all at once, just like LET and PSETQ do.
  1861.  
  1862. FGET-INTERNAL-RUN-TIME
  1863. Function in LISP package:
  1864. Args: ()
  1865. Returns the run time in the internal time format.  This is useful for
  1866. finding CPU usage.  If the operating system allows, a second value
  1867. containing CPU usage of child processes is returned.
  1868.  
  1869. FTRUNCATE
  1870. Function in LISP package:
  1871. Args: (number &optional (divisor 1))
  1872. Values: (quotient remainder)
  1873. Returns NUMBER/DIVISOR as an integer, rounded toward 0.  The second returned
  1874. value is the remainder.
  1875.  
  1876. FFUNCTION
  1877. Special Form in LISP package:
  1878. Syntax: (function x) or #'x
  1879. If X is a lambda expression, creates and returns a lexical closure of X in
  1880. the current lexical environment.  If X is a symbol that names a function,
  1881. returns that function.
  1882.  
  1883. FCODE-CHAR
  1884. Function in LISP package:
  1885. Args: (code &optional (bits 0) (font 0))
  1886. Returns a character object with the specified code, if any.
  1887. If not, returns NIL.
  1888.  
  1889. FCHAR-CODE
  1890. Function in LISP package:
  1891. Args: (char)
  1892. Returns the code attribute of CHAR.
  1893.  
  1894. FDELETE-IF
  1895. Function in LISP package:
  1896. Args: (test sequence
  1897.        &key (from-end nil) (start 0) (end (length sequence))
  1898.             (count most-positive-fixnum) (key #'identity))
  1899. Returns a sequence formed by removing the elements satisfying TEST
  1900. destructively from SEQUENCE.
  1901.  
  1902. VMULTIPLE-VALUES-LIMIT
  1903. Variable in LISP package:
  1904. The exclusive upper bound on the number of values that may be returned from
  1905. a function.  Actually, however, there is no such upper bound in KCL.
  1906.  
  1907. FSIMPLE-STRING-P
  1908. Function in LISP package:
  1909. Args: (x)
  1910. Returns T if X is a simple string; NIL otherwise.
  1911.  
  1912. FREMOVE-IF
  1913. Function in LISP package:
  1914. Args: (test sequence
  1915.        &key (from-end nil) (start 0) (end (length sequence))
  1916.             (count most-positive-fixnum) (key #'identity))
  1917. Returns a copy of SEQUENCE with elements satisfying TEST removed.
  1918.  
  1919. VBOOLE-EQV
  1920. Variable in LISP package:
  1921. Makes BOOLE return LOGEQV of INTEGER1 and INTEGER2.
  1922.  
  1923. VBOOLE-SET
  1924. Variable in LISP package:
  1925. Makes BOOLE return -1.
  1926.  
  1927. FLDB
  1928. Function in LISP package:
  1929. Args: (bytespec integer)
  1930. Extracts and right-justifies the specified byte of INTEGER, and returns the
  1931. result.
  1932.  
  1933. FBYTE-SIZE
  1934. Function in LISP package:
  1935. Args: (bytespec)
  1936. Returns the size part (in KCL, the car part) of the byte specifier.
  1937.  
  1938. FREVAPPEND
  1939. Function in LISP package:
  1940. Args: (x y)
  1941. Equivalent to (APPEND (REVERSE X) Y)
  1942.  
  1943. VSHORT-FLOAT-NEGATIVE-EPSILON
  1944. Variable in LISP package:
  1945. The smallest positive short-float that satisfies
  1946.     (not (= (float 1 e) (- (float 1 e) e))).
  1947.  
  1948. FHASH-TABLE-COUNT
  1949. Function in LISP package:
  1950. Args: (hash-table)
  1951. Returns the number of entries in the given Hash-Table.
  1952.  
  1953. FPACKAGE-USE-LIST
  1954. Function in LISP package:
  1955. Args: (package)
  1956. Returns the list of packages used by PACKAGE.
  1957.  
  1958. FREM
  1959. Function in LISP package:
  1960. Args: (number divisor)
  1961. Returns the second value of (TRUNCATE NUMBER DIVISOR).
  1962.  
  1963. FMIN
  1964. Function in LISP package:
  1965. Args: (number &rest more-numbers)
  1966. Returns the least of its arguments.
  1967.  
  1968. FAPPLYHOOK
  1969. Function in LISP package:
  1970. Args: (function args evalhookfn applyhookfn &optional (env nil))
  1971. Applies FUNCTION to ARGS, with *EVALHOOK* bound to EVALHOOKFN and with
  1972. *APPLYHOOK* bound to APPLYHOOKFN.  Ignores the hook function once, for the
  1973. top-level application of FUNCTION to ARGS.
  1974.  
  1975. VCHAR-CONTROL-BIT
  1976. Variable in LISP package:
  1977. The bit that indicates a control character.
  1978.  
  1979. FEXP
  1980. Function in LISP package:
  1981. Args: (number)
  1982. Calculates e raised to the power NUMBER, where e is the base of natural
  1983. logarithms.
  1984.  
  1985. FREAD-FROM-STRING
  1986. Function in LISP package:
  1987. Args: (string &optional (eof-error-p t) (eof-value nil)
  1988.               &key (start 0) (end (length string)) (preserve-whitespace nil))
  1989. Reads an object from STRING.
  1990.  
  1991. FCHAR-LESSP
  1992. Function in LISP package:
  1993. Args: (char &rest more-chars)
  1994. Returns T if the codes of CHARs are in strictly increasing order; NIL
  1995. otherwise.  For a lower-case character, the code of its upper-case equivalent
  1996. is used.
  1997.  
  1998. FARRAY-DIMENSIONS
  1999. Function in LISP package:
  2000. Args: (array)
  2001. Returns a list whose elements are the dimensions of ARRAY
  2002.  
  2003. FCDAR
  2004. Function in LISP package:
  2005. Args: (x)
  2006. Equivalent to (CDR (CAR X)).
  2007.  
  2008. FCADR
  2009. Function in LISP package:
  2010. Args: (x)
  2011. Equivalent to (CAR (CDR X)).
  2012.  
  2013. FLIST-ALL-PACKAGES
  2014. Function in LISP package:
  2015. Args: ()
  2016. Returns a list of all existing packages.
  2017.  
  2018. FREST
  2019. Function in LISP package:
  2020. Args: (x)
  2021. Equivalent to (CDR X).
  2022.  
  2023. FNSET-EXCLUSIVE-OR
  2024. Function in LISP package:
  2025. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  2026. Returns a list with elements which appear but once in LIST1 and LIST2.
  2027.  
  2028. V*MACROEXPAND-HOOK*
  2029. Variable in LISP package:
  2030. Holds a function that can take two arguments (a macro expansion function
  2031. and the macro form to be expanded) and returns the expanded form.  This
  2032. function is whenever a macro-expansion takes place.  Initially this is set to
  2033. #'FUNCALL.
  2034.  
  2035. FSUBSTITUTE-IF-NOT
  2036. Function in LISP package:
  2037. Args: (new test sequence
  2038.        &key (from-end nil) (start 0) (end (length sequence))
  2039.             (count most-positive-fixnum) (key #'identity))
  2040. Returns a sequence of the same kind as SEQUENCE with the same elements
  2041. except that all elements not satisfying TEST are replaced with NEWITEM.
  2042.  
  2043. FDISASSEMBLE
  2044. Function in LISP package:
  2045. Args: (thing)
  2046. Compiles the form specified by THING and prints the intermediate C language
  2047. code for that form.  But does NOT install the result of compilation.
  2048. If THING is a symbol that names a not-yet-compiled function, the function
  2049. definition is disassembled.
  2050. If THING is a lambda expression, it is disassembled as a function definition.
  2051. Otherwise, THING itself is disassembled as a top-level form.
  2052.  
  2053. FPROG*
  2054. Special Form in LISP package:
  2055. Syntax: (prog* ({var | (var [init])}*) {decl}* {tag | statement}*)
  2056. Creates a NIL block, binds VARs sequentially, and then executes STATEMENTs.
  2057.  
  2058. FBLOCK
  2059. Special Form in LISP package:
  2060. Syntax: (block name {form}*)
  2061. The FORMs are evaluated in order, but it is possible to exit the block
  2062. using (RETURN-FROM name value).  The RETURN-FROM must be lexically contained
  2063. within the block.
  2064.  
  2065. FCOPY-SYMBOL
  2066. Function in LISP package:
  2067. Args: (symbol &optional (copy-props nil))
  2068. Returns a new uninterned symbol with the same print name as SYMBOL.
  2069. If COPY-PROPS is NIL, the function, the variable, and the property slots
  2070. of the new symbol have no value.  Otherwise, these slots are given the
  2071. values of the corresponding slots of SYMBOL.
  2072.  
  2073. FACONS
  2074. Function in LISP package:
  2075. Args: (key datum alist)
  2076. Constructs a new alist by adding the pair (KEY . DATUM) to ALIST.
  2077.  
  2078. FADJUSTABLE-ARRAY-P
  2079. Function in LISP package:
  2080. Args: (array)
  2081. Returns T if ARRAY is adjustable; NIL otherwise.
  2082.  
  2083. FPROGN
  2084. Special Form in LISP package:
  2085. Syntax: (progn {form}*)
  2086. Evaluates FORMs in order, and returns whatever the last FORM returns.
  2087.  
  2088. FSVREF
  2089. Function in LISP package:
  2090. Args: (simple-vector index)
  2091. Returns the INDEX-th element of SIMPLE-VECTOR.
  2092.  
  2093. FAPPLY
  2094. Function in LISP package:
  2095. Args: (function arg &rest more-args)
  2096. Applies FUNCTION.  The arguments to the function consist of all ARGs
  2097. except for the last, and all elements of the last ARG.
  2098.  
  2099. FDECODE-FLOAT
  2100. Function in LISP package:
  2101. Args: (float)
  2102. Returns, as three values, the significand F, the exponent E, and the sign S
  2103. of the given float, so that
  2104.              E
  2105.     FLOAT = S * F * B    where B = (FLOAT-RADIX FLOAT)
  2106.  
  2107. S and F are floating-point numbers of the same float format as FLOAT, and E
  2108. is an integer.
  2109.  
  2110. V*EVAL-WHEN-COMPILE*
  2111. Variable in LISP package:
  2112. KCL specific: Tells the KCL compiler whether (non-NIL) or not (NIL) the
  2113. compiler should process top-level forms in compile-time-too mode.
  2114.  
  2115. VLONG-FLOAT-EPSILON
  2116. Variable in LISP package:
  2117. The smallest positive long-float that satisfies
  2118.     (not (= (float 1 e) (+ (float 1 e) e))).
  2119.  
  2120. FVECTOR-PUSH-EXTEND
  2121. Function in LISP package:
  2122. Args: (new-element vector &optional (extension (length vector)))
  2123. Similar to VECTOR-PUSH except that, if the fill pointer gets too large,
  2124. extends VECTOR rather then simply returns NIL.
  2125.  
  2126. FSUBST-IF-NOT
  2127. Function in LISP package:
  2128. Args: (new test tree &key (key #'identity))
  2129. Substitutes NEW for subtrees of TREE that do not satisfy TEST.
  2130.  
  2131. FDELETE
  2132. Function in LISP package:
  2133. Args: (item sequence
  2134.        &key (from-end nil) (test #'eql) test-not (start 0)
  2135.             (end (length sequence)) (count most-positive-fixnum)
  2136.             (key #'identity))
  2137. Returns a sequence formed by removing the specified ITEM destructively from
  2138. SEQUENCE.
  2139.  
  2140. FLABELS
  2141. Special Form in LISP package:
  2142. Syntax: (labels ({(name lambda-list {decl | doc}* {form}*)}*) . body)
  2143. Evaluates BODY as a PROGN, with the local function definitions in effect.  The
  2144. scope of the locally defined functions include the function definitions
  2145. themselves, so their definitions may include recursive references.  See the doc
  2146. of DEFUN for the complete syntax of a lambda-list.  Doc-strings for local
  2147. functions are simply ignored.
  2148.  
  2149. FRPLACA
  2150. Function in LISP package:
  2151. Args: (x y)
  2152. Replaces the car of X with Y, and returns the modified X.
  2153.  
  2154. FSECOND
  2155. Function in LISP package:
  2156. Args: (x)
  2157. Equivalent to (CADR X).
  2158.  
  2159. FSYMBOL-PLIST
  2160. Function in LISP package:
  2161. Args: (symbol)
  2162. Returns the property list of SYMBOL.
  2163.  
  2164. FWRITE-STRING
  2165. Function in LISP package:
  2166. Args: (string &optional (stream *standard-output*)
  2167.               &key (start 0) (end (length string)))
  2168. Outputs STRING and returns it.
  2169.  
  2170. V*PRINT-LEVEL*
  2171. Variable in LISP package:
  2172. How many levels deep the KCL printer should print.  Unlimited if NIL.
  2173.  
  2174. V*PRINT-RADIX*
  2175. Variable in LISP package:
  2176. Whether the KCL printer should print the radix indicator when printing
  2177. integers and rationals.
  2178.  
  2179. FREMOVE
  2180. Function in LISP package:
  2181. Args: (item sequence
  2182.        &key (from-end nil) (test #'eql) test-not (start 0)
  2183.             (end (length sequence)) (count most-positive-fixnum)
  2184.             (key #'identity))
  2185. Returns a copy of SEQUENCE with ITEM removed.
  2186.  
  2187. FFROUND
  2188. Function in LISP package:
  2189. Args: (number &optional (divisor 1))
  2190. Same as ROUND, but returns first value as a float.
  2191.  
  2192. FLOGEQV
  2193. Function in LISP package:
  2194. Args: (&rest integers)
  2195. Returns the bit-wise EQUIVALENCE of its arguments.
  2196.  
  2197. VMOST-NEGATIVE-SHORT-FLOAT
  2198. Variable in LISP package:
  2199. The short-float closest in value to negative infinity.
  2200.  
  2201. FNUNION
  2202. Function in LISP package:
  2203. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  2204. Returns the union of LIST1 and LIST2.  LIST1 and/or LIST2 may be destroyed.
  2205.  
  2206. FSTRING
  2207. Function in LISP package:
  2208. Args: (x)
  2209. Coerces X into a string.  If X is a string, then returns X itself.  If X is a
  2210. symbol, then returns X's print name.  If X is a character, then returns a one
  2211. element string containing that character.  Signals an error if X cannot be
  2212. coerced into a string.
  2213.  
  2214. FRETURN
  2215. Special Form in LISP package:
  2216. Syntax: (return [result])
  2217. Returns from the lexically surrounding NIL block.  The value of RESULT,
  2218. which defaults to NIL, is returned as the value of the block.
  2219.  
  2220. FDEFCFUN
  2221. Macro in LISP package:
  2222. Syntax: (defcfun header n {element}*)
  2223. KCL specific: Defines a C-language function which calls Lisp functions and/or
  2224. handles Lisp objects.  HEADER gives the header of the C function as a string.
  2225. N is the number of the main stack entries used by the C function, primarily
  2226. for protecting Lisp objects from being garbage-collected.  Each ELEMENT may
  2227. give a C code fragment as a string, or it may be a list
  2228.     ((symbol {arg}*) {place}*)
  2229. which, when executed, calls the Lisp function named by SYMBOL with the
  2230. specified arguments and saves the value(s) to the specified places.
  2231. The DEFCFUN form has the above meanings only after compiled;  The KCL
  2232. interpreter simply ignores this form.
  2233.  
  2234. FBIT-NOR
  2235. Function in LISP package:
  2236. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  2237. Performs a bit-wise logical NOR  on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  2238. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  2239. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  2240.  
  2241. FSTRING-UPCASE
  2242. Function in LISP package:
  2243. Args: (string &key (start 0) (end (length string)))
  2244. Returns a copy of STRING with all lower case characters converted to
  2245. uppercase.
  2246.  
  2247. FCEILING
  2248. Function in LISP package:
  2249. Args: (number &optional (divisor 1))
  2250. Returns the smallest integer not less than or NUMBER/DIVISOR.  Returns the
  2251. remainder as the second value.
  2252.  
  2253. FGETHASH
  2254. Function in LISP package:
  2255. Args: (key hash-table &optional (default nil))
  2256. Finds the entry in HASH-TABLE whose key is KEY and returns the associated
  2257. value and T, as multiple values.  Returns DEFAULT and NIL if there is no
  2258. such entry.
  2259.  
  2260. FTYPE-OF
  2261. Function in LISP package:
  2262. Args: (x)
  2263. Returns the type of X.
  2264.  
  2265. VLEAST-NEGATIVE-SHORT-FLOAT
  2266. Variable in LISP package:
  2267. The negative short-float closest in value to zero.
  2268.  
  2269. V*DEFAULT-PATHNAME-DEFAULTS*
  2270. Variable in LISP package:
  2271. The default pathname-defaults pathname.
  2272.  
  2273. FINSPECT
  2274. Function in LISP package:
  2275. Args: (x)
  2276. Shows the information about the object X in an interactive manner
  2277.  
  2278. FLONG-SITE-NAME
  2279. Function in LISP package:
  2280. Args: ()
  2281. Returns a string that identifies the physical location of the current KCL.
  2282.  
  2283. FBUTLAST
  2284. Function in LISP package:
  2285. Args: (list &optional (n 1))
  2286. Creates and returns a list with the same elements as LIST but without the
  2287. last N elements.
  2288.  
  2289. FY-OR-N-P
  2290. Function in LISP package:
  2291. Args: (&optional (format-string nil) &rest args)
  2292. Asks the user a question whose answer is either 'Y' or 'N'.  If FORMAT-STRING
  2293. is non-NIL, then FRESH-LINE operation is performed, a message is printed as
  2294. if FORMAT-STRING and ARGs were given to FORMAT, and then a prompt
  2295. "(Y or N)" is printed.  Otherwise, no prompt will appear.
  2296.  
  2297. V//
  2298. Variable in LISP package:
  2299. Gets the previous value of / when KCL evaluates a top-level form.
  2300.  
  2301. F1-
  2302. Function in LISP package:
  2303. Args: (number)
  2304. Returns NUMBER - 1.
  2305.  
  2306. FMAKE-HASH-TABLE
  2307. Function in LISP package:
  2308. Args: (&key (test 'eql) (size 1024) (rehash-size 1.5) (rehash-threshold 0.7))
  2309. Creates and returns a hash table.
  2310.  
  2311. FSTRING/=
  2312. Function in LISP package:
  2313. Args: (string1 string2
  2314.        &key (start1 0) (end1 (length string1))
  2315.             (start2 0) (end2 (length string2)))
  2316. Returns NIL if STRING1 and STRING2 are character-wise CHAR=.  Otherwise,
  2317. returns the index to the longest common prefix of the strings.
  2318.  
  2319. F<=
  2320. Function in LISP package:
  2321. Args: (number &rest more-numbers)
  2322. Returns T if arguments are in strictly non-decreasing order; NIL otherwise.
  2323.  
  2324. FMAKE-BROADCAST-STREAM
  2325. Function in LISP package:
  2326. Args: (&rest streams)
  2327. Returns an output stream which sends its output to all of the given streams.
  2328.  
  2329. FIMAGPART
  2330. Function in LISP package:
  2331. Args: (number)
  2332. Extracts the imaginary part of NUMBER.
  2333.  
  2334. FTYPECASE
  2335. Macro in LISP package:
  2336. Syntax: (typecase keyform {(type {form}*)}*)
  2337. Evaluates KEYFORM and tries to find the TYPE in which the value of KEYFORM
  2338. belongs.  If one is found, then evaluates FORMs that follow the KEY and
  2339. returns the value of the last FORM.  If not, simply returns NIL.
  2340.  
  2341. FINTEGERP
  2342. Function in LISP package:
  2343. Args: (x)
  2344. Returns T if X is an integer (fixnum or bignum); NIL otherwise.
  2345.  
  2346. FREAD-CHAR
  2347. Function in LISP package:
  2348. Args: (&optional (stream *standard-input*) (eof-error-p t)
  2349.                  (eof-value nil) (recursive-p nil))
  2350. Reads a character from STREAM.
  2351.  
  2352. FPEEK-CHAR
  2353. Function in LISP package:
  2354. Args: (&optional (peek-type nil) (stream *standard-input*) (eof-error-p t)
  2355.                  (eof-value nil) (recursive-p nil))
  2356. Peeks at the next character in the input stream STREAM.
  2357.  
  2358. FCHAR-FONT
  2359. Function in LISP package:
  2360. Args: (char)
  2361. Returns the font attribute of CHAR.
  2362.  
  2363. FSTRING-GREATERP
  2364. Function in LISP package:
  2365. Args: (string1 string2
  2366.        &key (start1 0) (end1 (length string1))
  2367.             (start2 0) (end2 (length string2)))
  2368. Similar to STRING>, but ignores cases.
  2369.  
  2370. FOUTPUT-STREAM-P
  2371. Function in LISP package:
  2372. Args: (stream)
  2373. Returns non-nil if STREAM can handle output operations; NIL otherwise.
  2374.  
  2375. FAND
  2376. Special Form in LISP package:
  2377. Syntax: (and {form}*)
  2378. Evaluates FORMs in order from left to right.  If any FORM evaluates to NIL,
  2379. returns immediately with the value NIL.  Else, returns the value(s) of the
  2380. last FORM.
  2381.  
  2382. FASH
  2383. Function in LISP package:
  2384. Args: (integer count)
  2385. Shifts INTEGER left by COUNT places.  Shifts right if COUNT is negative.
  2386.  
  2387. FLCM
  2388. Function in LISP package:
  2389. Args: (integer &rest more-integers)
  2390. Returns the least common multiple of the arguments.
  2391.  
  2392. FLET
  2393. Special Form in LISP package:
  2394. Syntax: (let ({var | (var [value])}*) {decl}* {form}*)
  2395. Initializes VARs, binding them to the values of VALUEs (which defaults to NIL)
  2396. all at once, then evaluates FORMs as a PROGN.
  2397.  
  2398. FELT
  2399. Function in LISP package:
  2400. Args: (sequence index)
  2401. Returns the INDEX-th element of SEQUENCE.
  2402.  
  2403. FCOS
  2404. Function in LISP package:
  2405. Args: (radians)
  2406. Returns the cosine of RADIANS.
  2407.  
  2408. V*QUERY-IO*
  2409. Variable in LISP package:
  2410. The query I/O stream.
  2411.  
  2412. V*READ-BASE*
  2413. Variable in LISP package:
  2414. The radix that the KCL reader reads numbers in.
  2415.  
  2416. FWITH-OPEN-STREAM
  2417. Macro in LISP package:
  2418. Syntax: (with-open-stream (var stream) {decl}* {form}*)
  2419. Evaluates FORMs as a PROGN with VAR bound to the value of STREAM.  The stream
  2420. is automatically closed on exit.
  2421.  
  2422. FWITH-INPUT-FROM-STRING
  2423. Macro in LISP package:
  2424. Syntax: (with-input-from-string (var string {keyword value}*) {decl}* {form}*)
  2425. Binds VAR to an input stream that returns characters from STRING and evaluates
  2426. the FORMs.  The stream is automatically closed on exit.  Allowed keywords are
  2427. :INDEX, :START, and :END.
  2428.  
  2429. FMAKE-ARRAY
  2430. Function in LISP package:
  2431. Args: (dimensions
  2432.        &key (element-type t) initial-element (initial-contents nil)
  2433.             (adjustable nil) (fill-pointer nil) (displaced-to nil)
  2434.             (displaced-index-offset 0) static)
  2435. Creates an array of the specified DIMENSIONS.  The default for INITIAL-
  2436. ELEMENT depends on ELEMENT-TYPE.
  2437. MAKE-ARRAY will always try to find the `best' array to
  2438. accommodate the element-type specified.   For example on a SUN element-type
  2439. (mod 1) --> bit
  2440. (integer 0 10) --> unsigned-char
  2441. (integer -3 10) --> signed-char
  2442. si::best-array-element-type is the function doing this.  It
  2443. is also used by the compiler, for coercing array element types.
  2444. If you are going to declare an array you should use the same
  2445. element type as was used in making it.  eg
  2446. (setq my-array (make-array 4 :element-type '(integer 0 10)))
  2447. (the (array (integer 0 10)) my-array)
  2448.     When wanting to optimize references to an array you need to
  2449. declare the array eg: (the (array (integer -3 10)) my-array) if ar
  2450. were constructed using the (integer -3 10) element-type.  You could of
  2451. course have used signed-char, but since the ranges may be
  2452. implementation dependent it is better to use -3 10 range.  MAKE-ARRAY
  2453. needs to do some calculation with the element-type if you don't
  2454. provide a primitive data-type.  One way of doing this in a machine
  2455. independent fashion:
  2456.  
  2457.   (defvar *my-elt-type* #.
  2458.       (array-element-type (make-array 1 :element-type '(integer -3 10))))
  2459.  
  2460. Then calls to (make-array n :element-type *my-elt-type*) will not have to go
  2461. through a type inclusion computation.  The keyword STATIC (KCL specific) if non
  2462. nil, will cause the array body to be non relocatable.
  2463.  
  2464.  
  2465. FDECF
  2466. Special Form in LISP package:
  2467. Syntax: (decf place [delta]) Subtracts the number
  2468. produced by DELTA (which defaults to 1) from the number in
  2469. PLACE.
  2470.  
  2471. FNSTRING-DOWNCASE
  2472. Function in LISP package:
  2473. Args: (string &key
  2474. (start 0) (end (length string))) Returns STRING with all upper case
  2475. characters converted to lowercase.
  2476.  
  2477. FCOPY-ALIST
  2478. Function in LISP
  2479. package: Args: (alist) Returns a new copy of ALIST.
  2480.  
  2481. FCOND
  2482. Special Form
  2483. in LISP package: Syntax: (cond {(test {form}*)}*) Evaluates each
  2484. TEST in order until one evaluates to a non-NIL value.  Then evaluates
  2485. the associated FORMs in order and returns the value(s) of the last
  2486. FORM.  If no forms follow the TEST, then returns the value of the
  2487. TEST.  Returns NIL, if all TESTs evaluate to NIL.
  2488.  
  2489. FATAN
  2490. Function in LISP package:
  2491. Args: (x &optional (y 1)) Returns the arc tangent of
  2492. X/Y.
  2493.  
  2494. VBOOLE-ANDC1
  2495. Variable in LISP package: Makes BOOLE return
  2496. LOGANDC1 of INTEGER1 and INTEGER2.
  2497.  
  2498. FCOSH
  2499. Function in LISP package:
  2500. Args: (number) Returns the hyperbolic cosine of
  2501. NUMBER.
  2502.  
  2503. FARRAY-IN-BOUNDS-P
  2504. Function in LISP package:
  2505. Args: (array
  2506. &rest subscripts) Returns T if SUBSCRIPTS are valid subscripts for
  2507. ARRAY; NIL otherwise.
  2508.  
  2509. FDELETE-FILE
  2510. Function in LISP package:
  2511. Args: (file) Deletes FILE.
  2512.  
  2513. FSORT 
  2514. Function in LISP package:
  2515. Args: (sequence predicate &key (key #'identity)) Destructively sorts SEQUENCE.
  2516. PREDICATE should return non-NIL if its first argument is to precede
  2517. its second argument.
  2518.  
  2519. FGET-SETF-METHOD-MULTIPLE-VALUE 
  2520. Function in LISP package:
  2521. Args: (form) Returns the five values (or five 'gangs')
  2522. constituting the SETF method for FORM.  See the doc of
  2523. DEFINE-SETF-METHOD for the meanings of the gangs.  The third value
  2524. (i.e., the list of store variables) may consist of any number of
  2525. elements.  See the doc of GET-SETF-METHOD for
  2526. comparison.
  2527.  
  2528. FFLOAT-RADIX 
  2529. Function in LISP package: Args: (float)
  2530. Returns the representation radix (or base) of the floating-point
  2531. number.
  2532.  
  2533. FSYMBOL-NAME 
  2534. Function in LISP package: Args: (symbol) Returns
  2535. the print name of the symbol SYMBOL.
  2536.  
  2537. FCLEAR-INPUT 
  2538. Function in LISP
  2539. package: Args: (&optional (stream *standard-input*)) Clears the input
  2540. stream STREAM.
  2541.  
  2542. FFIND-SYMBOL 
  2543. Function in LISP package: Args: (name
  2544. &optional (package *package*)) Returns the symbol named NAME in
  2545. PACKAGE.  If such a symbol is found, then the second value is :INTERN,
  2546. :EXTERNAL, or :INHERITED to indicate how the symbol is accessible.  If
  2547. no symbol is found then both values are NIL.
  2548.  
  2549. FCHAR< 
  2550. Function in LISP
  2551. package: Args: (char &rest more-chars) Returns T if the codes of CHARs
  2552. are in strictly increasing order; NIL otherwise.
  2553.  
  2554. FCATCH
  2555. Special Form
  2556. in LISP package: Syntax: (catch tag {form}*) Sets up a catcher with
  2557. that value TAG.  Then evaluates FORMs as a PROGN, but may possibly
  2558. abort the evaluation by a THROW form that specifies the value EQ to
  2559. the catcher tag.
  2560.  
  2561. FATANH 
  2562. Function in LISP package: Args: (number)
  2563. Returns the hyperbolic arc tangent of NUMBER.
  2564.  
  2565. FHASH-TABLE-P 
  2566. Function in LISP package: Args: (x) Returns T if X is a hash table object; NIL
  2567. otherwise.
  2568.  
  2569. FEVENP 
  2570. Function in LISP package: Args: (integer) Returns T
  2571. if INTEGER is even.  Returns NIL if INTEGER is odd.
  2572.  
  2573. FSIXTH
  2574. Function in LISP package: Args: (x) Equivalent to (CADR (CDDDDR X)).
  2575.  
  2576. FZEROP
  2577. Function in LISP package: Args: (number) Returns T if NUMBER = 0; NIL
  2578. otherwise.
  2579.  
  2580. FCOUNT-IF-NOT 
  2581. Function in LISP package: Args: (test
  2582. sequence
  2583.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  2584. Returns the number of elements in SEQUENCE not satisfying TEST.
  2585.  
  2586. FCAAAAR
  2587. Function in LISP package:
  2588. Args: (x)
  2589. Equivalent to (CAR (CAR (CAR (CAR X)))).
  2590.  
  2591. FCHAR>=
  2592. Function in LISP package:
  2593. Args: (char &rest more-chars)
  2594. Returns T if the codes of CHARs are in strictly non-increasing order; NIL
  2595. otherwise.
  2596.  
  2597. FCDDDAR
  2598. Function in LISP package:
  2599. Args: (x)
  2600. Equivalent to (CDR (CDR (CDR (CAR X)))).
  2601.  
  2602. FCDDADR
  2603. Function in LISP package:
  2604. Args: (x)
  2605. Equivalent to (CDR (CDR (CAR (CDR X)))).
  2606.  
  2607. FCDADDR
  2608. Function in LISP package:
  2609. Args: (x)
  2610. Equivalent to (CDR (CAR (CDR (CDR X)))).
  2611.  
  2612. FCADDDR
  2613. Function in LISP package:
  2614. Args: (x)
  2615. Equivalent to (CAR (CDR (CDR (CDR X)))).
  2616.  
  2617. FFILL-POINTER
  2618. Function in LISP package:
  2619. Args: (vector)
  2620. Returns the fill pointer of VECTOR.
  2621.  
  2622. FDEFINE-MODIFY-MACRO
  2623. Macro in LISP package:
  2624. Syntax: (define-modify-macro name lambda-list fun [doc])
  2625. Defines a read-modify-write macro, like PUSH and INCF.  The defined macro will
  2626. expand a form (NAME place val1 ... valn) into a form that in effect SETFs the
  2627. value of the call (FUN PLACE arg1 ... argm) into PLACE, where arg1 ... argm
  2628. are parameters in LAMBDA-LIST which are bound to the forms VAL1 ... VALn.
  2629. The doc-string DOC, if supplied, is saved as a FUNCTION doc and can be
  2630. retrieved by (documentation 'NAME 'function).
  2631.  
  2632. FMAPCAR
  2633. Function in LISP package:
  2634. Args: (fun list &rest more-lists)
  2635. Applies FUN to successive cars of LISTs and returns the results as a list.
  2636.  
  2637. V*TERMINAL-IO*
  2638. Variable in LISP package:
  2639. The terminal I/O stream.
  2640.  
  2641. VCHAR-META-BIT
  2642. Variable in LISP package:
  2643. The bit that indicates a meta character.
  2644.  
  2645. FFLOATP
  2646. Function in LISP package:
  2647. Args: (x)
  2648. Returns T if X is a floating-point number; NIL otherwise.
  2649.  
  2650. FSHADOW
  2651. Function in LISP package:
  2652. Args: (symbols &optional (package *package*))
  2653. Creates an internal symbol in PACKAGE with the same name as each of the
  2654. specified SYMBOLS.  SYMBOLS must be a list of symbols or a symbol.
  2655.  
  2656. FDOLIST
  2657. Special Form in LISP package:
  2658. Syntax: (dolist (var listform [result]) {decl}* {tag | statement}*)
  2659. Executes STATEMENTs, with VAR bound to each member of the list value of
  2660. LISTFORM.  Then returns the value(s) of RESULT (which defaults to NIL).
  2661.  
  2662. FMACROEXPAND-1
  2663. Function in LISP package:
  2664. Args: (form &optional (env nil))
  2665. If FORM is a macro form, then expands it once.  Returns two values: the
  2666. expanded form and a T-or-NIL flag indicating whether the original form was
  2667. a macro.
  2668.  
  2669. FSXHASH
  2670. Function in LISP package:
  2671. Args: (object)
  2672. Computes a hash code for OBJECT and returns it as an integer.
  2673.  
  2674. FLISTEN
  2675. Function in LISP package:
  2676. Args: (&optional (stream *standard-input*))
  2677. Returns T if a character is available on STREAM; NIL otherwise.  This function
  2678. does not correctly work in some versions of KCL because of the lack of such
  2679. mechanism in the underlying operating system.
  2680.  
  2681. FARRAYP
  2682. Function in LISP package:
  2683. Args: (x)
  2684. Returns T if X is an array; NIL otherwise.
  2685.  
  2686. FMAKE-PATHNAME
  2687. Function in LISP package:
  2688. Args: (&key (defaults (parse-namestring ""
  2689.                         (pathname-host *default-pathname-defaults*)))
  2690.             (host (pathname-host defaults))
  2691.             (device (pathname-device defaults))
  2692.             (directory (pathname-directory defaults))
  2693.             (name (pathname-name defaults))
  2694.             (type (pathname-type defaults))
  2695.             (version (pathname-version defaults)))
  2696. Create a pathname from HOST, DEVICE, DIRECTORY, NAME, TYPE and VERSION.
  2697.  
  2698. FFOURTH
  2699. Function in LISP package:
  2700. Args: (x)
  2701. Equivalent to (CADDDR X).
  2702.  
  2703. VBOOLE-1
  2704. Variable in LISP package:
  2705. Makes BOOLE return INTEGER1.
  2706.  
  2707. FALLOCATE-RELOCATABLE-PAGES
  2708. Function in SI package:
  2709. Args: (number)
  2710. KCL specific: Sets the maximum number of pages for relocatable blocks to
  2711. NUMBER.
  2712.  
  2713. FPATHNAME-TYPE
  2714. Function in LISP package:
  2715. Args: (pathname)
  2716. Returns the type slot of PATHNAME.
  2717.  
  2718. FREPLACE
  2719. Function in LISP package:
  2720. Args: (sequence1 sequence2
  2721.        &key (start1 0) (end1 (length sequence1))
  2722.             (start2 0) (end2 (length sequence2)))
  2723. Destructively modifies SEQUENCE1 by copying successive elements into it from
  2724. SEQUENCE2.
  2725.  
  2726. FBIT-XOR
  2727. Function in LISP package:
  2728. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  2729. Performs a bit-wise logical XOR on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  2730. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  2731. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  2732.  
  2733. FFUNCALL
  2734. Function in LISP package:
  2735. Args: (function &rest arguments)
  2736. Applies FUNCTION to the ARGUMENTs
  2737.  
  2738. FCLRHASH
  2739. Function in LISP package:
  2740. Args: (hash-table)
  2741. Removes all entries of HASH-TABLE and returns the hash table itself.
  2742.  
  2743. FGRAPHIC-CHAR-P
  2744. Function in LISP package:
  2745. Args: (char)
  2746. Returns T if CHAR is a printing character, i.e., #\Space through #\~;
  2747. NIL otherwise.
  2748.  
  2749. FALLOCATED-CONTIGUOUS-PAGES
  2750. Function in SI package:
  2751. Args: ()
  2752. KCL specific: Returns the number of pages currently allocated for contiguous
  2753. blocks.
  2754.  
  2755. FSUBSTITUTE-IF
  2756. Function in LISP package:
  2757. Args: (newitem test sequence
  2758.        &key (from-end nil) (start 0) (end (length sequence))
  2759.             (count most-positive-fixnum) (key #'identity))
  2760. Returns a sequence of the same kind as SEQUENCE with the same elements
  2761. except that all elements satisfying TEST are replaced with NEWITEM.
  2762.  
  2763. FFBOUNDP
  2764. Function in LISP package:
  2765. Args: (symbol)
  2766. Returns T if SYMBOL has a global function definition or if SYMBOL names a
  2767. special form or a macro; NIL otherwise.
  2768.  
  2769. VCALL-ARGUMENTS-LIMIT
  2770. Variable in LISP package:
  2771. The upper exclusive bound on the number of arguments that may be passed to
  2772. a function.  Actually, however, there is no such upper bound in KCL.
  2773.  
  2774. FNSUBLIS
  2775. Function in LISP package:
  2776. Args: (alist tree &key (test #'eql) test-not (key #'identity))
  2777. Substitutes from ALIST for subtrees of TREE.
  2778.  
  2779. FCHAR-NOT-EQUAL
  2780. Function in LISP package:
  2781. Args: (char &rest more-chars)
  2782. Returns T if no two of CHARs are the same character; NIL otherwise.
  2783. Upper case character and its lower case equivalent are regarded the same.
  2784.  
  2785. V*PRINT-GENSYM*
  2786. Variable in LISP package:
  2787. Whether the KCL printer should prefix symbols with no home package
  2788. with "#:".
  2789.  
  2790. V*TRACE-OUTPUT*
  2791. Variable in LISP package:
  2792. The trace output stream.
  2793.  
  2794. VMOST-POSITIVE-SINGLE-FLOAT
  2795. Variable in LISP package:
  2796. Same as MOST-POSITIVE-LONG-FLOAT.
  2797.  
  2798. V++
  2799. Variable in LISP package:
  2800. Gets the previous value of + when KCL evaluates a top-level form.
  2801.  
  2802. FLOGANDC1
  2803. Function in LISP package:
  2804. Args: (integer1 integer2)
  2805. Returns the logical AND of (LOGNOT INTEGER1) and INTEGER2.
  2806.  
  2807. V*ERROR-OUTPUT*
  2808. Variable in LISP package:
  2809. Holds the output stream for error messages.
  2810.  
  2811. FMACRO-FUNCTION
  2812. Function in LISP package:
  2813. Args: (symbol)
  2814. If SYMBOL globally names a macro, then returns the expansion function.
  2815. Returns NIL otherwise.
  2816.  
  2817. FSUBST-IF
  2818. Function in LISP package:
  2819. Args: (new test tree &key (key #'identity))
  2820. Substitutes NEW for subtrees of TREE that satisfy TEST.
  2821.  
  2822. FMISMATCH
  2823. Function in LISP package:
  2824. Args: (sequence1 sequence2
  2825.        &key (from-end nil) (test #'eql) test-not (start1 0) (start2 0)
  2826.             (end1 (length sequence1)) (end2 (length sequence2))
  2827.             (key #'identity))
  2828. The specified subsequences of SEQUENCE1 and SEQUENCE2 are compared
  2829. element-wise.  If they are of equal length and match in every element, the
  2830. result is NIL.  Otherwise, the result is a non-negative integer, the index
  2831. within SEQUENCE1 of the leftmost position at which they fail to match; or, if
  2832. one is shorter than and a matching prefix of the other, the index within
  2833. SEQUENCE1 beyond the last position tested is returned.
  2834.  
  2835. VLEAST-POSITIVE-SINGLE-FLOAT
  2836. Variable in LISP package:
  2837. Same as LEAST-POSITIVE-LONG-FLOAT.
  2838.  
  2839. FCOMPLEXP
  2840. Function in LISP package:
  2841. Args: (x)
  2842. Returns T if X is a complex number; NIL otherwise.
  2843.  
  2844. VCHAR-BITS-LIMIT
  2845. Variable in LISP package:
  2846. The upper exclusive bound on values produced by CHAR-BITS.
  2847.  
  2848. FNSET-DIFFERENCE
  2849. Function in LISP package:
  2850. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  2851. Returns a list of elements of LIST1 that do not appear in LIST2.  LIST1 may
  2852. be destroyed.
  2853.  
  2854. FREAD-LINE
  2855. Function in LISP package:
  2856. Args: (&optional (stream *standard-input*) (eof-error-p t)
  2857.                  (eof-value nil) (recursive-p nil))
  2858. Returns a line of text read from STREAM as a string, discarding the newline
  2859. character.
  2860.  
  2861. Note that when using line at a time input under unix,
  2862. input forms will always be followed by a #\newline.   Thus if you
  2863. do
  2864.  
  2865. >(read-line)
  2866. ""
  2867. nil
  2868.  
  2869. the empty string will be returned.  After lisp reads the (read-line)
  2870. it then invokes (read-line).  This happens before it does anything
  2871. else and so happens before the newline character immediately following
  2872. (read-line) has been read.  Thus read-line immediately encounters a
  2873. #\newline and so returns the empty string.  If there had been other
  2874. characters before the #\newline it would have been different:
  2875.  
  2876. >(read-line) how are you
  2877. " how are you"
  2878. nil
  2879.  
  2880. If you want to throw away "" input, you can do that with
  2881. the following:
  2882.  
  2883. (sloop::sloop while (equal (setq input (read-line)) ""))
  2884.  
  2885. You may also want to use character at a time input, but that
  2886. makes input editing harder.
  2887. nicolas% stty cbreak
  2888. nicolas% akcl
  2889. AKCL (Austin Kyoto Common Lisp)  Version(1.610) Mon Feb 10 18:38:29 CST 1992
  2890. Contains Enhancements by W. Schelter
  2891.  
  2892. >(let ((ifilename nil))
  2893.     (format t "~%Input file name: ")
  2894.     (setq ifilename (read-line)))
  2895. Input file name: /tmp/myfile
  2896. "/tmp/myfile"
  2897.  
  2898. >(bye)Bye.
  2899.  
  2900.  
  2901.  
  2902. VBOOLE-AND
  2903. Variable in LISP package:
  2904. Makes BOOLE return LOGAND of INTEGER1 and INTEGER2.
  2905.  
  2906. FGET-INTERNAL-REAL-TIME
  2907. Function in LISP package:
  2908. Args: ()
  2909. Returns the real time in the internal time format.  This is useful for
  2910. finding elapsed time.
  2911.  
  2912. FWRITE-TO-STRING
  2913. Function in LISP package:
  2914. Args: (object &key (escape *print-escape*) (radix *print-radix*)
  2915.                    (base *print-base*) (circle *print-circle*)
  2916.                    (pretty *print-pretty*) (level *print-level*)
  2917.                    (length *print-length*) (case *print-case*)
  2918.                    (array *print-array*) (gensym *print-gensym*))
  2919. Returns as a string the printed representation of OBJECT in the specified
  2920. mode.  See the variable docs of *PRINT-...* for the mode.
  2921.  
  2922. FPATHNAMEP
  2923. Function in LISP package:
  2924. Args: (x)
  2925. Returns T if X is a pathname object; NIL otherwise.
  2926.  
  2927. FMAX
  2928. Function in LISP package:
  2929. Args: (number &rest more-numbers)
  2930. Returns the greatest of its arguments.
  2931.  
  2932. FPOP
  2933. Special Form in LISP package:
  2934. Syntax: (pop place)
  2935. Pops one item off the front of the list in PLACE and returns it.
  2936.  
  2937. FIN-PACKAGE
  2938. Function in LISP package:
  2939. Args: (package-name &key (nicknames nil) (use '(lisp)))
  2940. Sets *PACKAGE* to the package with PACKAGE-NAME, creating the package if
  2941. it does not exist.  If the package already exists then it is modified
  2942. to agree with USE and NICKNAMES arguments.  Any new nicknames are added
  2943. without removing any old ones not specified.  If any package in the USE list
  2944. is not currently used, then it is added to the use list.
  2945.  
  2946. VARRAY-TOTAL-SIZE-LIMIT
  2947. Variable in LISP package:
  2948. The exclusive upper bound on the total number of elements of an array.
  2949.  
  2950. FREADTABLEP
  2951. Function in LISP package:
  2952. Args: (x)
  2953. Returns T if X is a readtable object; NIL otherwise.
  2954.  
  2955. FFLOAT-SIGN
  2956. Function in LISP package:
  2957. Args: (float1 &optional (float2 (float 1 float1)))
  2958. Returns a floating-point number with the same sign as FLOAT1 and with the
  2959. same absolute value as FLOAT2.
  2960.  
  2961. FCHARACTERP
  2962. Function in LISP package:
  2963. Args: (x)
  2964. Returns T if X is a character; NIL otherwise.
  2965.  
  2966. FCASE
  2967. Special Form in LISP package:
  2968. Syntax: (case keyform {({key | ({key}*)} {form}*)}*)
  2969. Evaluates KEYFORM and tries to find the KEY that is EQL to the value of
  2970. KEYFORM.  If one is found, then evaluates FORMs that follow the KEY and
  2971. returns the value(s) of the last FORM.  If not, simply returns NIL.
  2972.  
  2973. FREAD
  2974. Function in LISP package:
  2975. Args: (&optional (stream *standard-input*) (eof-error-p t) (eof-value nil)
  2976.                  (recursivep nil))
  2977. Reads in the next object from STREAM.
  2978.  
  2979. FVECTOR-POP
  2980. Function in LISP package:
  2981. Args: (vector)
  2982. Attempts to decrease the fill-pointer of VECTOR by 1 and returns the element
  2983. pointed to by the new fill pointer.  Signals an error if the old value of
  2984. the fill pointer is 0.
  2985.  
  2986. VBOOLE-ANDC2
  2987. Variable in LISP package:
  2988. Makes BOOLE return LOGANDC2 of INTEGER1 and INTEGER2.
  2989.  
  2990. FNAMESTRING
  2991. Function in LISP package:
  2992. Args: (pathname)
  2993. Returns the full form of PATHNAME as a string.
  2994.  
  2995. FPUSH
  2996. Special Form in LISP package:
  2997. Syntax: (push item place)
  2998. Conses ITEM onto the list in PLACE, and returns the new list.
  2999.  
  3000. FUNREAD-CHAR
  3001. Function in LISP package:
  3002. Args: (character &optional (stream *standard-input*))
  3003. Puts CHARACTER back on the front of the input stream STREAM.
  3004.  
  3005. FSUBSTITUTE
  3006. Function in LISP package:
  3007. Args: (newitem olditem sequence
  3008.        &key (from-end nil) (test #'eql) test-not (start 0)
  3009.             (end (length sequence)) (count most-positive-fixnum)
  3010.             (key #'identity))
  3011. Returns a sequence of the same kind as SEQUENCE with the same elements
  3012. except that OLDITEMs are replaced with NEWITEM.
  3013.  
  3014. FARRAY-HAS-FILL-POINTER-P
  3015. Function in LISP package:
  3016. Args: (array)
  3017. Returns T if ARRAY has a fill pointer; NIL otherwise.
  3018.  
  3019. FCONCATENATE
  3020. Function in LISP package:
  3021. Args: (result-type &rest sequences)
  3022. Returns a new sequence of the specified RESULT-TYPE, consisting of all
  3023. elements in SEQUENCEs.
  3024.  
  3025. FCDAAR
  3026. Function in LISP package:
  3027. Args: (x)
  3028. Equivalent to (CDR (CAR (CAR X))).
  3029.  
  3030. FCADAR
  3031. Function in LISP package:
  3032. Args: (x)
  3033. Equivalent to (CAR (CDR (CAR X))).
  3034.  
  3035. FCAADR
  3036. Function in LISP package:
  3037. Args: (x)
  3038. Equivalent to (CAR (CAR (CDR X))).
  3039.  
  3040. FCHAR=
  3041. Function in LISP package:
  3042. Args: (char &rest more-chars)
  3043. Returns T if all CHARs are the same character; NIL otherwise.
  3044.  
  3045. FDEFINE-SETF-METHOD
  3046. Macro in LISP package:
  3047. Syntax: (define-setf-method access-fun defmacro-lambda-list {decl | doc}*
  3048.           {form}*)
  3049. Defines how to SETF a generalized-variable reference of the form
  3050. (ACCESS-FUN ...).  When a form (setf (ACCESS-FUN arg1 ... argn) value) is
  3051. being evaluated, the FORMs are first evaluated as a PROGN with the parameters
  3052. in DEFMACRO-LAMBDA-LIST bound to ARG1 ... ARGn.  Assuming that the last FORM
  3053. returns five values
  3054.     (temp-var-1 ... temp-var-k)
  3055.     (value-from-1 ... value-form-k)
  3056.     (store-var)
  3057.     storing-form
  3058.     access-form
  3059. in order, the whole SETF is then expanded into
  3060.     (let* ((temp-var-1 value-from-1) ... (temp-k value-form-k)
  3061.            (store-var VALUE))
  3062.       storing-from)
  3063. Incidentally, the five values are called the five gangs of a SETF method.
  3064. The doc-string DOC, if supplied, is saved as a SETF doc and can be retrieved
  3065. by (documentation 'NAME 'setf).
  3066.  
  3067. FALPHA-CHAR-P
  3068. Function in LISP package:
  3069. Args: (char)
  3070. Returns T if CHAR is an alphabetic character, A-Z or a-z; NIL otherwise.
  3071.  
  3072. FVECTOR-PUSH
  3073. Function in LISP package:
  3074. Args: (new-element vector)
  3075. Attempts to set the element of ARRAY designated by its fill pointer to
  3076. NEW-ELEMENT and increments the fill pointer by one.  Returns NIL if the fill
  3077. pointer is too large.  Otherwise, returns the new fill pointer value.
  3078.  
  3079. FSTRING-TRIM
  3080. Function in LISP package:
  3081. Args: (char-bag string)
  3082. Returns a copy of STRING with the characters in CHAR-BAG removed from both
  3083. ends.
  3084.  
  3085. FMAKE-PACKAGE
  3086. Function in LISP package:
  3087. Args: (package-name &key (nicknames nil) (use '(lisp)))
  3088. Makes a new package having the specified PACKAGE-NAME and NICKNAMES.  The
  3089. package will inherit all external symbols from each package in the USE list.
  3090.  
  3091. FCLOSE
  3092. Function in LISP package:
  3093. Args: (stream &key (abort nil))
  3094. Closes STREAM.  A non-NIL value of :ABORT indicates an abnormal termination.
  3095.  
  3096. FDENOMINATOR
  3097. Function in LISP package:
  3098. Args: (rational)
  3099. Returns the denominator of RATIONAL as an integer.
  3100.  
  3101. FFLOAT
  3102. Function in LISP package:
  3103. Args: (number &optional other)
  3104. Converts a non-complex number to a floating-point number.  If NUMBER is
  3105. already a float, FLOAT simply returns NUMBER.  Otherwise, the format of
  3106. the returned float depends on OTHER;  If OTHER is not provided, FLOAT returns
  3107. a SINGLE-FLOAT.  If OTHER is provided, the result is in the same float format
  3108. as OTHER's.
  3109.  
  3110. FFIRST
  3111. Function in LISP package:
  3112. Args: (x)
  3113. Equivalent to (CAR X).
  3114.  
  3115. FROUND
  3116. Function in LISP package:
  3117. Args: (number &optional (divisor 1))
  3118. Rounds NUMBER/DIVISOR to nearest integer.  The second returned value is the
  3119. remainder.
  3120.  
  3121. FSUBST
  3122. Function in LISP package:
  3123. Args: (new old tree &key (test #'eql) test-not (key #'identity))
  3124. Substitutes NEW for subtrees of TREE that match OLD.
  3125.  
  3126. FUPPER-CASE-P
  3127. Function in LISP package:
  3128. Args: (char)
  3129. Returns T if CHAR is an upper-case character; NIL otherwise.
  3130.  
  3131. FARRAY-ELEMENT-TYPE
  3132. Function in LISP package:
  3133. Args: (array)
  3134. Returns the type of the elements of ARRAY
  3135.  
  3136. FMAXIMUM-CONTIGUOUS-PAGES
  3137. Function in SI package:
  3138. Args: ()
  3139. KCL specific: Returns the current maximum number of pages for contiguous
  3140. blocks.
  3141.  
  3142. FMACHINE-TYPE
  3143. Function in LISP package:
  3144. Args: ()
  3145. Returns a string that identifies the machine type of the machine
  3146. on which KCL is currently running.
  3147.  
  3148. FCOMPILER-LET
  3149. Special Form in LISP package:
  3150. Syntax: (compiler-let ({var | (var [value])}*) {form}*)
  3151. When interpreted, this form works just like a LET form with all VARs declared
  3152. special.  When compiled, FORMs are processed with the VARs bound at compile
  3153. time, but no bindings occur when the compiled code is executed.
  3154.  
  3155. FADJOIN
  3156. Function in LISP package:
  3157. Args: (item list &key (test #'eql) test-not (key #'identity))
  3158. Adds ITEM to LIST unless ITEM is already a member of LIST.
  3159.  
  3160. FLOGAND
  3161. Function in LISP package:
  3162. Args: (&rest integers)
  3163. Returns the bit-wise AND of its arguments.
  3164.  
  3165. FCLINES
  3166. Macro in LISP package:
  3167. Syntax: (clines {string}*)
  3168. KCL specific:  The KCL compiler embeds STRINGs into the intermediate C
  3169. language code.  The interpreter ignores this form.
  3170.  
  3171. FMAPCON
  3172. Function in LISP package:
  3173. Args: (fun list &rest more-lists)
  3174. Applies FUN to successive cdrs of LISTs, NCONCs the results, and returns it.
  3175.  
  3176. FPACKAGE-SHADOWING-SYMBOLS
  3177. Function in LISP package:
  3178. Args: (package)
  3179. Returns the list of symbols that have been declared as shadowing symbols
  3180. in PACKAGE.
  3181.  
  3182. FINTERN
  3183. Function in LISP package:
  3184. Args: (name &optional (package *package*))
  3185. Returns a symbol having the specified name, creating it if necessary.
  3186. Returns as the second value one of the symbols :INTERNAL, :EXTERNAL,
  3187. :INHERITED, and NIL.
  3188.  
  3189. FVALUES
  3190. Function in LISP package:
  3191. Args: (&rest args)
  3192. Returns ARGs in order, as values.
  3193.  
  3194. FNOTANY
  3195. Function in LISP package:
  3196. Args: (predicate sequence &rest more-sequences)
  3197. Returns T if none of the elements in SEQUENCEs satisfies PREDICATE; NIL
  3198. otherwise.
  3199.  
  3200. VBOOLE-2
  3201. Variable in LISP package:
  3202. Makes BOOLE return INTEGER2.
  3203.  
  3204. FEXPORT
  3205. Function in LISP package:
  3206. Args: (symbols &optional (package *package*))
  3207. Makes SYMBOLS external symbols of PACKAGE.  SYMBOLS must be a list of symbols
  3208. or a symbol.
  3209.  
  3210. FMULTIPLE-VALUE-LIST
  3211. Special Form in LISP package:
  3212. Syntax: (multiple-value-list form)
  3213. Evaluates FORM, and returns a list of multiple values it returned.
  3214.  
  3215. FDRIBBLE
  3216. Function in LISP package:
  3217. Args: (&optional pathname)
  3218. If PATHNAME is given, begins to record the interaction to the specified file.
  3219. If PATHNAME is not given, ends the recording.
  3220.  
  3221. F*
  3222. Function in LISP package:
  3223. Args: (&rest numbers)
  3224. Returns the product of its arguments.  With no args, returns 1.
  3225.  
  3226. V*
  3227. Variable in LISP package:
  3228. Holds the value of the last top-level form.
  3229.  
  3230. FBIT-NOT
  3231. Function in LISP package:
  3232. Args: (bit-array &optional (result-bit-array nil))
  3233. Performs a bit-wise logical NOT in the elements of BIT-ARRAY.
  3234. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  3235. BIT-ARRAY if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  3236.  
  3237. F<
  3238. Function in LISP package:
  3239. Args: (number &rest more-numbers)
  3240. Returns T if its arguments are in strictly increasing order; NIL otherwise.
  3241.  
  3242. V*PRINT-LENGTH*
  3243. Variable in LISP package:
  3244. How many elements the KCL printer should print at each level of nested data
  3245. object.  Unlimited if NIL.
  3246.  
  3247. FCOMPLEX
  3248. Function in LISP package:
  3249. Args: (realpart &optional (imagpart 0))
  3250. Returns a complex number with the given real and imaginary parts.
  3251.  
  3252. FMULTIPLE-VALUE-PROG1
  3253. Special Form in LISP package:
  3254. Syntax: (multiple-value-prog1 form {form}*)
  3255. Evaluates the first FORM, saves all the values produced, then evaluates
  3256. the other FORMs.  Returns the saved values.
  3257.  
  3258. FSET-SYNTAX-FROM-CHAR
  3259. Function in LISP package:
  3260. Args: (to-char from-char
  3261.        &optional (to-readtable *readtable*) (from-readtable nil))
  3262. Makes the syntax of TO-CHAR in TO-READTABLE be the same as the syntax of
  3263. FROM-CHAR in FROM-READTABLE.
  3264.  
  3265. VSINGLE-FLOAT-EPSILON
  3266. Variable in LISP package:
  3267. Same as LONG-FLOAT-EPSILON.
  3268.  
  3269. FPUSHNEW
  3270. Macro in LISP package:
  3271. Syntax: (pushnew item place {keyword value}*)
  3272. If ITEM is already in the list stored in PLACE, does nothing.  Else, conses
  3273. ITEM onto the list.  Returns NIL.  If no KEYWORDs are supplied, each element
  3274. in the list is compared with ITEM by EQL, but the comparison can be controlled
  3275. by supplying keywords :TEST, :TEST-NOT, and/or :KEY.
  3276.  
  3277. FBIT-ORC1
  3278. Function in LISP package:
  3279. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  3280. Performs a bit-wise logical ORC1 on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  3281. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  3282. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  3283.  
  3284. FLOGANDC2
  3285. Function in LISP package:
  3286. Args: (integer1 integer2)
  3287. Returns the logical AND of INTEGER1 and (LOGNOT INTEGER2).
  3288.  
  3289. FCHAR-BIT
  3290. Function in LISP package:
  3291. Args: (char name)
  3292. Returns T if the named bit is on in the character CHAR; NIL otherwise.
  3293. In KCL, this function always returns NIL.
  3294.  
  3295. FINTEGER-LENGTH
  3296. Function in LISP package:
  3297. Args: (integer)
  3298. Returns the number of significant bits in the absolute value of INTEGER.
  3299.  
  3300. VMOST-NEGATIVE-FIXNUM
  3301. Variable in LISP package:
  3302. The fixnum closest in value to negative infinity.
  3303.  
  3304. FPACKAGEP
  3305. Function in LISP package:
  3306. Args: (x)
  3307. Returns T if X is a package; NIL otherwise.
  3308.  
  3309. FINPUT-STREAM-P
  3310. Function in LISP package:
  3311. Args: (stream)
  3312. Returns non-NIL if STREAM can handle input operations; NIL otherwise.
  3313.  
  3314. FALLOCATE
  3315. Function in LISP package:
  3316. Args: (type number &optional (really-allocate nil))
  3317. KCL specific: Sets the maximum number of pages for the type class of the
  3318. KCL implementation type TYPE to NUMBER.  If REALLY-ALLOCATE is given a
  3319. non-NIL value, then the specified number of pages will be allocated
  3320. immediately.
  3321.  
  3322. FCOUNT-IF
  3323. Function in LISP package:
  3324. Args: (test sequence
  3325.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  3326. Returns the number of elements in SEQUENCE satisfying TEST.
  3327.  
  3328. VLONG-FLOAT-NEGATIVE-EPSILON
  3329. Variable in LISP package:
  3330. The smallest positive long-float that satisfies
  3331.     (not (= (float 1 e) (- (float 1 e) e))).
  3332.  
  3333. F>=
  3334. Function in LISP package:
  3335. Args: (number &rest more-numbers)
  3336. Returns T if arguments are in strictly non-increasing order; NIL otherwise.
  3337.  
  3338. FPATHNAME
  3339. Function in LISP package:
  3340. Args: (x)
  3341. Turns X into a pathname.  X may be a string, symbol, stream, or pathname.
  3342.  
  3343. FPROCLAIM
  3344. Function in LISP package:
  3345. Args: (decl-spec)
  3346. Puts the declaration given by DECL-SPEC into effect globally.  See the doc of
  3347. DECLARE for possible DECL-SPECs.
  3348.  
  3349. FMACROLET
  3350. Special Form in LISP package:
  3351. Syntax: (macrolet ({(name defmacro-lambda-list {decl | doc}* . body)}*)
  3352.           {form}*)
  3353. Evaluates FORMs as a PROGN, with the local macro definitions in effect.
  3354. See the doc of DEFMACRO for the complete syntax of a defmacro-lambda-list.
  3355. Doc-strings for local macros are simply ignored.
  3356.  
  3357. V///
  3358. Variable in LISP package:
  3359. Gets the previous value of // when KCL evaluates a top-level form.
  3360.  
  3361. FGO
  3362. Special Form in LISP package:
  3363. Syntax: (go tag)
  3364. Jumps to the specified TAG established by a lexically surrounding TAGBODY.
  3365.  
  3366. FEQ
  3367. Function in LISP package:
  3368. Args: (x y)
  3369. Returns T if X and Y are the same identical object; NIL otherwise.
  3370.  
  3371. FMAKE-CHAR
  3372. Function in LISP package:
  3373. Args: (char &optional (bits 0) (font 0))
  3374. Returns a character object with the same code attribute as CHAR and with
  3375. the specified BITS and FONT attributes.
  3376.  
  3377. FFILE-NAMESTRING
  3378. Function in LISP package:
  3379. Args: (pathname)
  3380. Returns the written representation of PATHNAME as a string.
  3381.  
  3382. VBOOLE-NOR
  3383. Variable in LISP package:
  3384. Makes BOOLE return LOGNOR of INTEGER1 and INTEGER2.
  3385.  
  3386. FCHARACTER
  3387. Function in LISP package:
  3388. Args: (x)
  3389. Coerces X into a character object if possible.
  3390.  
  3391. FGBC
  3392. Function in LISP package:
  3393. Args: (x)
  3394. KCL specific: Invokes the garbage collector (GC) with the collection level
  3395. specified by X.  NIL as the argument causes GC to collect cells only.  T as
  3396. the argument causes GC to collect everything.
  3397.  
  3398. FSYMBOL-FUNCTION
  3399. Function in LISP package:
  3400. Args: (symbol)
  3401. Returns the current global function definition named by SYMBOL.
  3402.  
  3403. FMAP
  3404. Function in LISP package:
  3405. Args: (result-type function sequence &rest more-sequences)
  3406. FUNCTION must take as many arguments as there are sequences provided.  The 
  3407. result is a sequence such that the i-th element is the result of applying
  3408. FUNCTION to the i-th elements of the SEQUENCEs.
  3409.  
  3410. FMAKE-DISPATCH-MACRO-CHARACTER
  3411. Function in LISP package:
  3412. Args: (char &optional (non-terminating-p nil) (readtable *readtable*))
  3413. Causes the character CHAR to be a dispatching macro character in READTABLE.
  3414.  
  3415. FCONSTANTP
  3416. Function in LISP package:
  3417. Args: (symbol)
  3418. Returns T if the variable named by SYMBOL is a constant; NIL otherwise.
  3419.  
  3420. VARRAY-RANK-LIMIT
  3421. Variable in LISP package:
  3422. The exclusive upper bound on the rank of an array.
  3423.  
  3424. FCHAR-EQUAL
  3425. Function in LISP package:
  3426. Args: (char &rest more-chars)
  3427. Returns T if all of its arguments are the same character; NIL otherwise.
  3428. Upper case character and its lower case equivalent are regarded the same.
  3429.  
  3430. FSET-EXCLUSIVE-OR
  3431. Function in LISP package:
  3432. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  3433. Returns a list of elements appearing exactly once in LIST1 and LIST2.
  3434.  
  3435. FTREE-EQUAL
  3436. Function in LISP package:
  3437. Args: (x y &key (test #'eql) test-not)
  3438. Returns T if X and Y are isomorphic trees with identical leaves.
  3439.  
  3440. FCDDR
  3441. Function in LISP package:
  3442. Args: (x)
  3443. Equivalent to (CDR (CDR X)).
  3444.  
  3445. FACOS
  3446. Function in LISP package:
  3447. Args: (number)
  3448. Returns the arc cosine of NUMBER.
  3449.  
  3450. FGETF
  3451. Function in LISP package:
  3452. Args: (place indicator &optional (default nil))
  3453. Searches the property list stored in Place for an indicator EQ to Indicator.
  3454. If one is found, the corresponding value is returned, else the Default is
  3455. returned.
  3456.  
  3457. FTIME
  3458. Macro in LISP package:
  3459. Syntax: (time form)
  3460. Evaluates FORM and outputs timing statistics on *TRACE-OUTPUT*.
  3461.  
  3462. FSAVE
  3463. Function in LISP package:
  3464. Args: (pathname)
  3465. KCL specific: Saves the current KCL core image into a program file specified
  3466. by PATHNAME.  This function depends on the version of KCL.  See KCL Report for
  3467. the details.
  3468.  
  3469. FMAKE-RANDOM-STATE
  3470. Function in LISP package:
  3471. Args: (&optional (state *random-state*))
  3472. Creates and returns a copy of the specified random state.  If STATE is NIL,
  3473. then the value of *RANDOM-STATE* is used.  If STATE is T, then returns a
  3474. random state object generated from the universal time.
  3475.  
  3476. FWARN
  3477. Function in LISP package:
  3478. Args: (format-string &rest args)
  3479. Formats FORMAT-STRING and ARGs to *ERROR-OUTPUT* as a warning message.
  3480.  
  3481. FPROG
  3482. Special Form in LISP package:
  3483. Syntax: (prog ({var | (var [init])}*) {decl}* {tag | statement}*)
  3484. Creates a NIL block, binds VARs in parallel, and then executes STATEMENTs.
  3485.  
  3486. FCHAR-NOT-GREATERP
  3487. Function in LISP package:
  3488. Args: (char &rest more-chars)
  3489. Returns T if the codes of CHARs are in strictly non-decreasing order; NIL
  3490. otherwise.  For a lower-case character, the code of its upper-case equivalent
  3491. is used.
  3492.  
  3493. V*STANDARD-OUTPUT*
  3494. Variable in LISP package:
  3495. The default output stream used by the KCL printer.
  3496.  
  3497. FEXPT
  3498. Function in LISP package:
  3499. Args: (base-number power-number)
  3500. Returns BASE-NUMBER raised to the power POWER-NUMBER.
  3501.  
  3502. V*APPLYHOOK*
  3503. Variable in LISP package:
  3504. Used to substitute another function for the implicit APPLY normally done
  3505. within EVAL.  If *APPLYHOOK* is not NIL, its value must be a function 
  3506. which takes three arguments: a function to be applied, a list of arguments,
  3507. and an environment.  This function does the application instead of APPLY.
  3508.  
  3509. FSQRT
  3510. Function in LISP package:
  3511. Args: (number)
  3512. Returns the principal square root of NUMBER.
  3513.  
  3514. FSCALE-FLOAT
  3515. Function in LISP package:
  3516. Args: (float integer)
  3517. Returns (* FLOAT (expt (float-radix FLOAT) INTEGER)).
  3518.  
  3519. FHELP*
  3520. Function in LISP package:
  3521. Args: (string &optional (package 'lisp))
  3522. KCL specific: Prints the documentation associated with those symbols in the
  3523. specified package whose print names contain STRING as substring.  STRING may
  3524. be a symbol, in which case the print-name of that symbol is used.  If PACKAGE
  3525. is NIL, then all packages are searched.
  3526.  
  3527. FDEFLA
  3528. Macro in LISP package:
  3529. Syntax: (defla name lambda-list {decl | doc}* {form}*)
  3530. KCL specific: Used to DEFine Lisp Alternative.  For the interpreter, DEFLA is
  3531. equivalent to DEFUN, but the compiler ignores this form.
  3532.  
  3533. FCHAR>
  3534. Function in LISP package:
  3535. Args: (char &rest more-chars)
  3536. Returns T if the codes of CHARs are in strictly decreasing order; NIL
  3537. otherwise.
  3538.  
  3539. FBREAK
  3540. Function in LISP package:
  3541. Args: (&optional (format-string nil) &rest args)
  3542. Enters a break loop.  If FORMAT-STRING is non-NIL, formats FORMAT-STRING
  3543. and ARGS to *ERROR-OUTPUT* before entering a break loop.
  3544. Typing :HELP at the break loop will list the break-loop commands.
  3545.  
  3546. FLDIFF
  3547. Function in LISP package:
  3548. Args: (list sublist)
  3549. Returns a new list, whose elements are those of LIST that appear before
  3550. SUBLIST.  If SUBLIST is not a tail of LIST, a copy of LIST is returned.
  3551.  
  3552. FACOSH
  3553. Function in LISP package:
  3554. Args: (number)
  3555. Returns the hyperbolic arc cosine of NUMBER.
  3556.  
  3557. VMOST-NEGATIVE-LONG-FLOAT
  3558. Variable in LISP package:
  3559. The long-float closest in value to negative infinity.
  3560.  
  3561. FRETURN-FROM
  3562. Special Form in LISP package:
  3563. Syntax: (return-from name [result])
  3564. Returns from the lexically surrounding block whose name is NAME.  The value
  3565. of RESULT, which defaults to NIL, is returned as the value of the block.
  3566.  
  3567. FUNION
  3568. Function in LISP package:
  3569. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  3570. Returns the union of LIST1 and LIST2.
  3571.  
  3572. FCOUNT
  3573. Function in LISP package:
  3574. Args: (item sequence
  3575.        &key (from-end nil) (test #'eql) test-not (start 0)
  3576.             (end (length sequence)) (key #'identity))
  3577. Returns the number of elements in SEQUENCE satisfying TEST with ITEM.
  3578.  
  3579. FTYPEP
  3580. Function in LISP package:
  3581. Args: (x type)
  3582. Returns T if X is of the type TYPE; NIL otherwise.
  3583.  
  3584. FASSOC-IF-NOT
  3585. Function in LISP package:
  3586. Args: (test alist)
  3587. Returns the first pair in ALIST whose car does not satisfy TEST.
  3588.  
  3589. FBIT-VECTOR-P
  3590. Function in LISP package:
  3591. Args: (x)
  3592. Returns T if X is a bit vector; NIL otherwise.
  3593.  
  3594. FNSTRING-CAPITALIZE
  3595. Function in LISP package:
  3596. Args: (string &key (start 0) (end (length string)))
  3597. Returns STRING with the first character of each word converted to upper-case,
  3598. and remaining characters in the word converted to lower case.
  3599.  
  3600. VLEAST-NEGATIVE-LONG-FLOAT
  3601. Variable in LISP package:
  3602. The negative long-float closest in value to zero.
  3603.  
  3604. FADJUST-ARRAY
  3605. Function in LISP package:
  3606. Args: (array dimensions
  3607.        &key (element-type (array-element-type array))
  3608.             initial-element (initial-contents nil) (fill-pointer nil)
  3609.             (displaced-to nil) (displaced-index-offset 0))
  3610. Adjusts the dimensions of ARRAY to the given DIMENSIONS.  The default value
  3611. of INITIAL-ELEMENT depends on ELEMENT-TYPE.
  3612.  
  3613. FSEARCH
  3614. Function in LISP package:
  3615. Args: (sequence1 sequence2
  3616.        &key (from-end nil) (test #'eql) test-not (start1 0) (start2 0)
  3617.             (end1 (length sequence1)) (end2 (length sequence2))
  3618.             (key #'identity))
  3619. A search is conducted for the first subsequence of SEQUENCE2 which
  3620. element-wise matches SEQUENCE1.  If there is such a subsequence in SEQUENCE2,
  3621. the index of the its leftmost element is returned; otherwise, NIL is
  3622. returned.
  3623.  
  3624. FSYMBOL-VALUE
  3625. Function in LISP package:
  3626. Args: (symbol)
  3627. Returns the current value of the dynamic (special) variable named by SYMBOL.
  3628.  
  3629. FRPLACD
  3630. Function in LISP package:
  3631. Args: (x y)
  3632. Replaces the cdr of X with Y, and returns the modified X.
  3633.  
  3634. FPROCLAMATION
  3635. Function in LISP package:
  3636. Args: (decl-spec)
  3637. KCL specific: Returns T if the specified declaration is globally in effect;
  3638. NIL otherwise.  See the doc of DECLARE for possible DECL-SPECs.
  3639.  
  3640. FFFLOOR
  3641. Function in LISP package:
  3642. Args: (number &optional (divisor 1))
  3643. Same as FLOOR, but returns a float as the first value.
  3644.  
  3645. FBOUNDP
  3646. Function in LISP package:
  3647. Args: (symbol)
  3648. Returns T if the global variable named by SYMBOL has a value; NIL otherwise.
  3649.  
  3650. FEQUALP
  3651. Function in LISP package:
  3652. Args: (x y)
  3653. Returns T if X and Y are EQUAL, if they are characters and satisfy CHAR-EQUAL,
  3654. if they are numbers and have the same numerical value, or if they have
  3655. components that are all EQUALP.  Returns NIL otherwise.
  3656.  
  3657. FSIMPLE-BIT-VECTOR-P
  3658. Function in LISP package:
  3659. Args: (x)
  3660. Returns T if X is a simple bit-vector; NIL otherwise.
  3661.  
  3662. FLOGNOR
  3663. Function in LISP package:
  3664. Args: (integer1 integer2)
  3665. Returns the complement of the logical OR of INTEGER1 and INTEGER2.
  3666.  
  3667. FMEMBER-IF-NOT
  3668. Function in LISP package:
  3669. Args: (test list &key (key #'identity))
  3670. Returns the tail of LIST beginning with the first element not satisfying
  3671. TEST.
  3672.  
  3673. FMAKE-TWO-WAY-STREAM
  3674. Function in LISP package:
  3675. Args: (input-stream output-stream)
  3676. Returns a bidirectional stream which gets its input from INPUT-STREAM and
  3677. sends its output to OUTPUT-STREAM.
  3678.  
  3679. FUNLESS
  3680. Special Form in LISP package:
  3681. Syntax: (unless test {form}*)
  3682. If TEST evaluates to NIL, then evaluates FORMs as a PROGN.  If not,
  3683. simply returns NIL.
  3684.  
  3685. FMAKE-SEQUENCE
  3686. Function in LISP package:
  3687. Args: (type length &key initial-element)
  3688. Returns a sequence of the given TYPE and LENGTH, with elements initialized
  3689. to INITIAL-ELEMENT.  The default value of INITIAL-ELEMENT depends on TYPE.
  3690.  
  3691. FMULTIPLE-VALUE-SETQ
  3692. Special Form in LISP package:
  3693. Syntax: (multiple-value-setq variables form)
  3694. Sets each variable in the list VARIABLES to the corresponding value of FORM.
  3695. Returns the value assigned to the first variable.
  3696.  
  3697. FPARSE-INTEGER
  3698. Function in LISP package:
  3699. Args: (string
  3700.        &key (start 0) (end (length string)) (radix 10) (junk-allowed nil))
  3701. Parses STRING for an integer and returns it.
  3702.  
  3703. F+
  3704. Function in LISP package:
  3705. Args: (&rest numbers)
  3706. Returns the sum of its arguments.  With no args, returns 0.
  3707.  
  3708. V+
  3709. Variable in LISP package:
  3710. Holds the last top-level form.
  3711.  
  3712. V*PRINT-ESCAPE*
  3713. Variable in LISP package:
  3714. Whether the KCL printer should put escape characters whenever appropriate.
  3715.  
  3716. F=
  3717. Function in LISP package:
  3718. Args: (number &rest more-numbers)
  3719. Returns T if all of its arguments are numerically equal; NIL otherwise.
  3720.  
  3721. FSOFTWARE-TYPE
  3722. Function in LISP package:
  3723. Args: ()
  3724. Returns a string that identifies the software type of the software
  3725. under which KCL is currently running.
  3726.  
  3727. FDOCUMENTATION
  3728. Function in LISP package:
  3729. Args: (symbol doc-type)
  3730. Returns the doc-string of DOC-TYPE for SYMBOL; NIL if none exists.
  3731. Possible doc-types are:
  3732.     FUNCTION  (special forms, macros, and functions)
  3733.     VARIABLE  (dynamic variables, including constants)
  3734.     TYPE      (types defined by DEFTYPE)
  3735.     STRUCTURE (structures defined by DEFSTRUCT)
  3736.     SETF      (SETF methods defined by DEFSETF, DEFINE-SETF-METHOD, and
  3737.                DEFINE-MODIFY-MACRO)
  3738. All built-in special forms, macros, functions, and variables have their
  3739. doc-strings.
  3740.  
  3741. FLOCALLY
  3742. Special Form in LISP package:
  3743. Syntax: (locally {decl}* {form}*)
  3744. Gives local pervasive declarations.
  3745.  
  3746. FGENTEMP
  3747. Function in LISP package:
  3748. Args: (&optional (prefix "t") (package *package*))
  3749. Creates a new symbol interned in the package PACKAGE with the given PREFIX.
  3750.  
  3751. FRENAME-PACKAGE
  3752. Function in LISP package:
  3753. Args: (package new-name &optional (new-nicknames nil))
  3754. Replaces the old name and nicknames of PACKAGE with NEW-NAME and
  3755. NEW-NICKNAMES.
  3756.  
  3757. FPROVIDE
  3758. Function in LISP package:
  3759. Args: (module-name)
  3760. Adds the specified module to the list of modules maintained in *MODULES*.
  3761.  
  3762. FCOMMONP
  3763. Function in LISP package:
  3764. Args: (x)
  3765. Returns T if X is a Common Lisp object; NIL otherwise.
  3766.  
  3767. FNUMBERP
  3768. Function in LISP package:
  3769. Args: (x)
  3770. Returns T if X is any kind of number; NIL otherwise.
  3771.  
  3772. VMOST-POSITIVE-DOUBLE-FLOAT
  3773. Variable in LISP package:
  3774. Same as MOST-POSITIVE-LONG-FLOAT.
  3775.  
  3776. FLOGTEST
  3777. Function in LISP package:
  3778. Args: (integer1 integer2)
  3779. Returns T if LOGAND of INTEGER1 and INTEGER2 is not zero; NIL otherwise.
  3780.  
  3781. FBIT-ORC2
  3782. Function in LISP package:
  3783. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  3784. Performs a bit-wise logical ORC2 on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  3785. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  3786. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  3787.  
  3788. FCOPY-READTABLE
  3789. Function in LISP package:
  3790. Args: (&optional (from-readtable *readtable*) (to-readtable nil))
  3791. Returns a copy of the readtable FROM-READTABLE.  If TO-READTABLE is non-NIL,
  3792. then copies into TO-READTABLE.  Otherwise, creates a new readtable.
  3793.  
  3794. FRANDOM-STATE-P
  3795. Function in LISP package:
  3796. Args: (x)
  3797. Returns T if X is a random-state object; NIL otherwise.
  3798.  
  3799. FDIRECTORY-NAMESTRING
  3800. Function in LISP package:
  3801. Args: (pathname)
  3802. Returns the directory part of PATHNAME as a string.
  3803.  
  3804. VLEAST-POSITIVE-DOUBLE-FLOAT
  3805. Variable in LISP package:
  3806. Same as LEAST-POSITIVE-LONG-FLOAT.
  3807.  
  3808. FSTANDARD-CHAR-P
  3809. Function in LISP package:
  3810. Args: (char)
  3811. Returns T if CHAR is a standard character, i.e., one of the 95 ASCII printing
  3812. characters #\Space to #\~ and #Newline; NIL otherwise.
  3813.  
  3814. FDEFENTRY
  3815. Macro in LISP package:
  3816. Syntax: (defentry name arg-types c-function)
  3817.  
  3818. KCL specific: The compiler defines a Lisp function whose body consists of a
  3819. calling sequence to the C language function specified by C-FUNCTION.  The
  3820. interpreter ignores this form.  The ARG-TYPES specifies the C types of the
  3821. arguments which C-FUNCTION requires.  The list of allowed types is (object
  3822. char int float double string).  Code will be produced to coerce from a lisp
  3823. object to the appropriate type before passing the argument to the C-FUNCTION.
  3824. The c-function should be of the form (c-result-type c-fname) where
  3825. c-result-type is a member of (void object char int float double string).
  3826. c-fname may be a symbol (in which case it will be downcased) or a string.  If
  3827. c-function is not a list, then (object c-function) is assumed.
  3828.  
  3829.   Sample usage:
  3830. --File begin-----
  3831. ;; JOE takes X a lisp string and Y a fixnum and returns a character.
  3832. (clines "#include \"foo.ch\"")
  3833. (defentry joe (string int) (char "our_c_fun"))
  3834. ---File end------
  3835. ---File foo.ch---
  3836. /* C function for extracting the i'th element of a string */
  3837. static char our_c_fun(p,i)
  3838. char *p;
  3839. int i;
  3840.    {
  3841.     return p[i];
  3842.    }
  3843. -----File end---
  3844.  
  3845. FTRUENAME
  3846. Function in LISP package:
  3847. Ar
  3848. gs: (pathname)
  3849. Returns the pathname for the actual file described by PATHNAME.
  3850.  
  3851. V*READ-SUPPRESS*
  3852. Variable in LISP package:
  3853. When the value of this variable is NIL, the KCL reader operates normally.
  3854. When it is non-NIL, then the reader parses input characters but much of what
  3855. is read is not interpreted.
  3856.  
  3857. FIDENTITY
  3858. Function in LISP package:
  3859. Args: (x)
  3860. Simply returns X.
  3861.  
  3862. FNREVERSE
  3863. Function in LISP package:
  3864. Args: (sequence)
  3865. Returns a sequence of the same elements as SEQUENCE but in reverse order.
  3866. SEQUENCE may be destroyed.
  3867.  
  3868. FGET-DISPATCH-MACRO-CHARACTER
  3869. Function in LISP package:
  3870. Args: (disp-char sub-char &optional (readtable *readtable*))
  3871. Returns the macro-character function for SUB-CHAR under DISP-CHAR.
  3872.  
  3873. FPATHNAME-DEVICE
  3874. Function in LISP package:
  3875. Args: (pathname)
  3876. Returns the device slot of PATHNAME.
  3877.  
  3878. FUNINTERN
  3879. Function in LISP package:
  3880. Args: (symbol &optional (package *package*))
  3881. Makes SYMBOL no longer present in PACKAGE.  Returns T if SYMBOL was present;
  3882. NIL otherwise.  If PACKAGE is the home package of SYMBOL, then makes SYMBOL
  3883. uninterned.
  3884.  
  3885. VARRAY-DIMENSION-LIMIT
  3886. Variable in LISP package:
  3887. The exclusive upper bound of the array dimension.
  3888.  
  3889. FSUBTYPEP
  3890. Function in LISP package:
  3891. Args: (type1 type2)
  3892. Returns T if TYPE1 is a subtype of TYPE2; NIL otherwise.  If it could not
  3893. determine, then returns NIL as the second value.  Otherwise, the second value
  3894. is T.
  3895.  
  3896. FNOTEVERY
  3897. Function in LISP package:
  3898. Args: (predicate sequence &rest more-sequences)
  3899. Returns T if at least one of the elements in SEQUENCEs does not satisfy
  3900. PREDICATE; NIL otherwise.
  3901.  
  3902. FUNEXPORT
  3903. Function in LISP package:
  3904. Args: (symbols &optional (package *package*))
  3905. Makes SYMBOLS no longer accessible as external symbols in PACKAGE.  SYMBOLS
  3906. must be a list of symbols or a symbol.
  3907.  
  3908. FPOSITION-IF-NOT
  3909. Function in LISP package:
  3910. Args: (test sequence
  3911.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  3912. Returns the index of the first element in SEQUENCE that does not satisfy TEST;
  3913. NIL if no such element exists.
  3914.  
  3915. FFLOAT-PRECISION
  3916. Function in LISP package:
  3917. Args: (float)
  3918. Returns the number of significant radix-B digits used to represent the
  3919. significand F of the floating-point number, where B = (FLOAT-RADIX FLOAT).
  3920.  
  3921. FSTRING-DOWNCASE
  3922. Function in LISP package:
  3923. Args: (string &key (start 0) (end (length string)))
  3924. Returns a copy of STRING with all upper case characters converted to
  3925. lowercase.
  3926.  
  3927. VBOOLE-XOR
  3928. Variable in LISP package:
  3929. Makes BOOLE return LOGXOR of INTEGER1 and INTEGER2.
  3930.  
  3931. FDPB
  3932. Function in LISP package:
  3933. Args: (newbyte bytespec integer)
  3934. Returns an integer computed by replacing the specified byte of INTEGER with
  3935. NEWBYTE.
  3936.  
  3937. FABS
  3938. Function in LISP package:
  3939. Args: (number)
  3940. Returns the absolute value of NUMBER.
  3941.  
  3942. FCAR
  3943. Function in LISP package:
  3944. Args: (list)
  3945. Returns the car of LIST.  Returns NIL if LIST is NIL.
  3946.  
  3947. FCONJUGATE
  3948. Function in LISP package:
  3949. Args: (number)
  3950. Returns the complex conjugate of NUMBER.
  3951.  
  3952. FCIS
  3953. Function in LISP package:
  3954. Args: (radians)
  3955. Returns e raised to i*RADIANS.
  3956.  
  3957. FBIT
  3958. Function in LISP package:
  3959. Args: (bit-array &rest subscripts)
  3960. Returns the bit from BIT-ARRAY at SUBSCRIPTS.
  3961.  
  3962. FNOT
  3963. Function in LISP package:
  3964. Args: (x)
  3965. Returns T if X is NIL; NIL otherwise.
  3966.  
  3967. FREAD-CHAR-NO-HANG
  3968. Function in LISP package:
  3969. Args: (&optional (stream *standard-input*) (eof-error-p t)
  3970.                  (eof-value nil) (recursive-p nil))
  3971. Returns the next character from STREAM if one is available; NIL otherwise.
  3972.  
  3973. FCHECK-TYPE
  3974. Macro in LISP package:
  3975. Syntax: (check-type place typespec [string])
  3976. Signals an error, if the contents of PLACE are not of the specified type.
  3977.  
  3978. FFRESH-LINE
  3979. Function in LISP package:
  3980. Args: (&optional (stream *standard-output*))
  3981. Outputs a newline if it is not positioned at the beginning of a line.  Returns
  3982. T if it output a newline; NIL otherwise.
  3983.  
  3984. FWRITE-CHAR
  3985. Function in LISP package:
  3986. Args: (char &optional (stream *standard-output*))
  3987. Outputs CHAR and returns it.
  3988.  
  3989. FPARSE-NAMESTRING
  3990. Function in LISP package:
  3991. Args: (thing &optional host (defaults *default-pathname-defaults*)
  3992.              &key (start 0) (end (length thing)) (junk-allowed nil))
  3993. Parses a string representation of a pathname into a pathname.  HOST
  3994. is ignored.
  3995.  
  3996. FSTRING-NOT-LESSP
  3997. Function in LISP package:
  3998. Args: (string1 string2
  3999.        &key (start1 0) (end1 (length string1))
  4000.             (start2 0) (end2 (length string2)))
  4001. Similar to STRING>=, but ignores cases.
  4002.  
  4003. FCHAR
  4004. Function in LISP package:
  4005. Args: (string index)
  4006. Returns the INDEX-th character in STRING.
  4007.  
  4008. FAREF
  4009. Function in LISP package:
  4010. Args: (array &rest subscripts)
  4011. Returns the element of ARRAY specified by SUBSCRIPTS.
  4012.  
  4013. FFILL
  4014. Function in LISP package:
  4015. Args: (sequence item &key (start 0) (end (length sequence)))
  4016. Replaces the specified elements of SEQUENCE all with ITEM.
  4017.  
  4018. FPACKAGE-NICKNAMES
  4019. Function in LISP package:
  4020. Args: (package)
  4021. Returns as a list the nickname strings for the specified PACKAGE.
  4022.  
  4023. FENDP
  4024. Function in LISP package:
  4025. Args: (x)
  4026. Returns T if X is NIL.  Returns NIL if X is a cons.  Otherwise, signals an
  4027. error.
  4028.  
  4029. FODDP
  4030. Function in LISP package:
  4031. Args: (integer)
  4032. Returns T if INTEGER is odd; NIL otherwise.
  4033.  
  4034. FCHAR-UPCASE
  4035. Function in LISP package:
  4036. Args: (char)
  4037. Returns the upper-case equivalent of CHAR, if any.
  4038. If not, simply returns CHAR.
  4039.  
  4040. FSTABLE-SORT
  4041. Function in LISP package:
  4042. Args: (sequence predicate &key (key #'identity))
  4043. Destructively sorts SEQUENCE.  PREDICATE should return non-NIL if its first
  4044. argument is to precede its second argument.
  4045.  
  4046. FLIST*
  4047. Function in LISP package:
  4048. Args: (arg &rest others)
  4049. Returns a list of its arguments with the last cons being a dotted pair of
  4050. the next to the last argument and the last argument.
  4051.  
  4052. FTRACE
  4053. Macro in LISP package:
  4054. Syntax: (trace {function-name}*)
  4055. Traces the specified functions.  With no FUNCTION-NAMEs, returns a list of
  4056. functions currently being traced.
  4057.  
  4058. Additional Keywords are allowed in AKCL with the
  4059. syntax (trace {fn | (fn {:kw form}*)}*)
  4060.  
  4061. For each FN naming a function, traces that function.  Each :KW should
  4062. be one of the ones listed below, and FORM should have the
  4063. corresponding form.  No :KW may be given more than once for the same
  4064. FN.  Returns a list of all FNs now traced which weren't already
  4065. traced.
  4066.  
  4067.  
  4068. EXAMPLE (Try this with your favorite factorial function FACT):
  4069.  
  4070. ;; print entry args and exit values
  4071.  
  4072. (trace FACT)
  4073.  
  4074. ;; Break coming out of FACT if the value is bigger than 1000.
  4075.  
  4076. (trace (fact :exit
  4077.          (progn
  4078.            (if (> (car values) 1000)(break "big result"))
  4079.            (car values))))
  4080.  
  4081. ;; Hairy example:
  4082.  
  4083. ;;make arglist available without the si:: prefix
  4084. (import 'si::arglist)
  4085.  
  4086. (trace (fact
  4087.         :DECLARATIONS
  4088.         ((in-string "Here comes input: ")
  4089.          (out-string "Here comes output: ")
  4090.          all-values
  4091.          (silly (+ 3 4)))
  4092.         :COND
  4093.         (equal (rem (car arglist) 2) 0)
  4094.         :ENTRY
  4095.         (progn
  4096.           (cond
  4097.            ((equal (car arglist) 8)
  4098.             (princ "Entering FACT on input 8!! ")
  4099.             (setq out-string "Here comes output from inside (FACT 8): "))
  4100.            (t
  4101.             (princ in-string)))
  4102.           (car arglist))
  4103.         :EXIT
  4104.         (progn
  4105.           (setq all-values (cons (car values) all-values))
  4106.           (princ out-string)
  4107.           (when (equal (car arglist) 8)
  4108.                 ;; reset out-string
  4109.                 (setq out-string "Here comes output: "))
  4110.           (cons 'fact values))
  4111.         :ENTRYCOND
  4112.         (not (= (car arglist) 6))
  4113.         :EXITCOND
  4114.         (not (= (car values) (* 6 (car arglist))))
  4115.         :DEPTH
  4116.         5))
  4117.  
  4118. :KW          FORM
  4119.  
  4120. :DECLARATIONS    DEFAULT: NIL
  4121.                FORM is ((var  form ) ... (var  form )), where
  4122.                             1     1          n     n
  4123.              the var  are symbols distinct from each other and from
  4124.                     i
  4125.              all symbols which are similarly declared for currently
  4126.              traced functions.  Each form  is evaluated immediately.
  4127.                                          i
  4128.              Upon any invocation of a traced function when not already
  4129.              inside a traced function call, each var  is bound to
  4130.                                                     i
  4131.              that value of form .
  4132.                                i
  4133. :COND            DEFAULT: T
  4134.                Here, FORM is any Lisp form to be evaluated (by EVAL)
  4135.              upon entering a call of FN, in the environment where si::ARGLIST
  4136.              is bound to the current list of arguments of FN.  Note that
  4137.              even if the evaluation of FORM changes the value of SI::ARGLIST
  4138.              (e.g. by evaluation of (SETQ si::ARGLIST ...)), the list of
  4139.              arguments passed to FN is unchanged.  Users may alter args passed
  4140.          by destructively modifying the list structure of SI::ARGLIST
  4141.          however. The call is traced 
  4142.              (thus invoking the :ENTRYCOND and :EXITCOND forms, at least)
  4143.              if and only if FORM does not evaluate to NIL.
  4144.  
  4145. :ENTRYCOND       DEFAULT: T
  4146.                This is evaluated (by EVAL) if the :COND form evaluates to
  4147.              non-NIL, both in an environment where SI::ARGLIST is bound to the
  4148.              current list of arguments of FN.  If non-NIL, the :ENTRY form
  4149.              is then evaluated and printed with the trace "prompt".
  4150.  
  4151. :ENTRY           DEFAULT: (CONS (QUOTE x) SI::ARGLIST),
  4152.                            where x is the symbol we call FN
  4153.                If the :COND and :ENTRYCOND forms evaluate to non-NIL,
  4154.              then the trace "prompt" is printed and then this FORM is
  4155.              evaluated (by EVAL) in an environment where SI::ARGLIST is bound
  4156.              to the current list of arguments of FN.  The result is then
  4157.              printed.
  4158.  
  4159. :EXITCOND        DEFAULT: T
  4160.                This is evaluated (by EVAL) in the environment described
  4161.              below for the :EXIT form.  The :EXIT form is then evaluated
  4162.              and printed with the "prompt" if and only if the result here
  4163.              is non-NIL.
  4164.  
  4165. :EXIT            DEFAULT: (CONS (QUOTE x) VALUES),
  4166.                           where x is the symbol we call FN
  4167.                Upon exit from tracing a given call, this FORM is
  4168.              evaluated (after the appropriate trace "prompt" is printed),
  4169.              using EVAL in an environment where SI::ARGLIST is bound to the
  4170.              current list of arguments of FN and VALUES is bound to the
  4171.              list of values returned by FN (recalling that Common Lisp
  4172.              functions may return multiple values).
  4173.  
  4174. :DEPTH           DEFAULT:  No depth limit
  4175.                FORM is simply a positive integer specifying the maximum
  4176.              nesting of traced calls of FN, i.e. of calls of FN in which
  4177.              the :COND form evaluated to non-NIL.  For calls of FN in
  4178.              which this limit is exceeded, even the :COND form is not
  4179.              evaluated, and the call is not traced.
  4180. FDEFCONSTANT
  4181. Macro in LISP package:
  4182. Syntax: (defconstant name initial-value [doc])
  4183. Declares that the variable NAME is a constant whose value is the value of
  4184. INITIAL-VALUE.  The doc-string DOC, if supplied, is saved as a VARIABLE doc
  4185. and can be retrieved by (documentation 'NAME 'variable).
  4186.  
  4187. FVALUES-LIST
  4188. Function in LISP package:
  4189. Args: (list)
  4190. Returns all of the elements of LIST in order, as values.
  4191.  
  4192. FRATIONALIZE
  4193. Function in LISP package:
  4194. Args: (number)
  4195. Converts NUMBER into rational approximately and returns it.
  4196.  
  4197. FEQUAL
  4198. Function in LISP package:
  4199. Args: (x y)
  4200. Returns T if X and Y are EQL or if they are of the same type and corresponding
  4201. components are EQUAL.  Returns NIL otherwise.  Strings and bit-vectors are
  4202. EQUAL if they are the same length and have identical components.  Other
  4203. arrays must be EQ to be EQUAL.
  4204.  
  4205. FDIGIT-CHAR-P
  4206. Function in LISP package:
  4207. Args: (char &optional (radix 10))
  4208. If CHAR represents a digit in RADIX, then returns the weight as an integer.
  4209. Otherwise, returns nil.
  4210.  
  4211. FNINTH
  4212. Function in LISP package:
  4213. Args: (x)
  4214. Equivalent to (CAR (CDDDDR (CDDDDR X))).
  4215.  
  4216. FERROR
  4217. Function in LISP package:
  4218. Args: (control-string &rest args)
  4219. Signals a fatal error.
  4220.  
  4221. FISQRT
  4222. Function in LISP package:
  4223. Args: (integer)
  4224. Returns the greatest integer less than or equal to the square root of the
  4225. given non-negative integer.
  4226.  
  4227. FCHAR/=
  4228. Function in LISP package:
  4229. Args: (char &rest more-chars)
  4230. Returns T if no two of CHARs are the same character; NIL otherwise.
  4231.  
  4232. FLISP-IMPLEMENTATION-TYPE
  4233. Function in LISP package:
  4234. Args: ()
  4235. Returns a string that tells you that you are using a version of KCL.
  4236.  
  4237. FPATHNAME-DIRECTORY
  4238. Function in LISP package:
  4239. Args: (pathname)
  4240. Returns the directory slot of PATHNAME.
  4241.  
  4242. FCDAAAR
  4243. Function in LISP package:
  4244. Args: (x)
  4245. Equivalent to (CDR (CAR (CAR (CAR X)))).
  4246.  
  4247. FCADAAR
  4248. Function in LISP package:
  4249. Args: (x)
  4250. Equivalent to (CAR (CDR (CAR (CAR X)))).
  4251.  
  4252. FCAADAR
  4253. Function in LISP package:
  4254. Args: (x)
  4255. Equivalent to (CAR (CAR (CDR (CAR X)))).
  4256.  
  4257. FCAAADR
  4258. Function in LISP package:
  4259. Args: (x)
  4260. Equivalent to (CAR (CAR (CAR (CDR X)))).
  4261.  
  4262. FCDDDDR
  4263. Function in LISP package:
  4264. Args: (x)
  4265. Equivalent to (CDR (CDR (CDR (CDR X)))).
  4266.  
  4267. FGET-MACRO-CHARACTER
  4268. Function in LISP package:
  4269. Args: (char &optional (readtable *readtable*))
  4270. Returns the function associated with CHAR and, as a second value, returns
  4271. the non-terminating-p flag.
  4272.  
  4273. FFORMAT
  4274. Function in LISP package:
  4275. Args: (destination control-string &rest arguments)
  4276. Provides various facilities for formatting output.
  4277. DESTINATION controls where the result will go.  If DESTINATION is T, then
  4278. the output is sent to the standard output stream.  If it is NIL, then the
  4279. output is returned in a string as the value of the call.  Otherwise,
  4280. DESTINATION must be a stream to which the output will be sent.
  4281.  
  4282. CONTROL-STRING is a string to be output, possibly with embedded
  4283. formatting directives, which are flagged with the escape character
  4284. "~".  Directives generally expand into additional text to be output,
  4285. usually consuming one or more of ARGUMENTs in the process.
  4286.  
  4287.  
  4288.  
  4289. A few useful directives are:
  4290.  
  4291. ~A, ~nA, ~n@A    Prints one argument as if by PRINC
  4292. ~S, ~nS, ~n@S    Prints one argument as if by PRIN1
  4293. ~D, ~B, ~O, ~X    Prints one integer in decimal, binary, octal, and hexa
  4294. ~%        Does TERPRI
  4295. ~&        Does FRESH-LINE
  4296.  
  4297. where n is the minimal width of the field in which the object is printed.
  4298. ~nA and ~nS put padding spaces on the right; ~n@A and ~n@S put on the left.
  4299.  
  4300. ~R  is for printing numbers in various formats.
  4301.  
  4302.   ~nR   prints arg in radix n.
  4303.   ~R    prints arg as a cardinal english number: two
  4304.   ~:R   prints arg as an ordinal english number: third
  4305.   ~@R   prints arg as an a Roman Numeral: VII
  4306.   ~:@R   prints arg as an old Roman Numeral: IIII
  4307.  
  4308. ~C prints a character.
  4309.   ~:C represents non printing characters by their pretty names,eg Space
  4310.   ~@C uses the #\ syntax to allow the reader to read it.
  4311.  
  4312. ~F prints a floating point number arg.
  4313.   The full form is ~w,d,k,overflowchar,padcharF
  4314.   w represents the total width of the printed representation (variable if
  4315.     not present)
  4316.   d the number of fractional digits to display
  4317.     (format nil "~,2f" 10010.0314) --> "10010.03"
  4318.   k arg is multiplied by 10^k before printing it as a decimal number.
  4319.   overflowchar width w characters copies of the overflow character will
  4320.     be printed.   eg(format t "X>~5,2,,'?F<X" 100.034) --> X>?????<X
  4321.   padchar is the character to pad with
  4322.     (format t "X>~10,2,1,'?,'bF<X" 100.03417) -->X>bbb1000.34<X
  4323.   @ makes + sign print if the arg is positive
  4324.  
  4325. ~@[print-if-true~]
  4326.    if arg is not nil, then it is retained as an arg for further printing,
  4327.    otherwise it is used up 
  4328.    (format nil "~@[x = ~d~]~a" nil 'bil) --> "BIL"
  4329.    (format nil "~@[x = ~d ~]~a" 8) --> "x = 8 BIL"
  4330.  
  4331.  
  4332. FASSERT
  4333. Macro in LISP package:
  4334. Syntax: (assert test-form [({place}*) [string {arg}*]])
  4335. Signals an error if the value of TEST-FORM is NIL.  STRING is an format string
  4336. used as the error message.  ARGs are arguments to the format string.
  4337.  
  4338. FCOMPILED-FUNCTION-P
  4339. Function in LISP package:
  4340. Args: (x)
  4341. Returns T if X is a compiled function; NIL otherwise.
  4342.  
  4343. FSUBLIS
  4344. Function in LISP package:
  4345. Args: (alist tree &key (test #'eql) test-not (key #'identity))
  4346. Substitutes from ALIST for subtrees of TREE nondestructively.
  4347.  
  4348. FPATHNAME-NAME
  4349. Function in LISP package:
  4350. Args: (pathname)
  4351. Returns the name slot of PATHNAME.
  4352.  
  4353. FIMPORT
  4354. Function in LISP package:
  4355. Args: (symbols &optional (package *package*))
  4356. Makes SYMBOLS internal symbols of PACKAGE.  SYMBOLS must be a list of symbols
  4357. or a symbol.
  4358.  
  4359. FLOGXOR
  4360. Function in LISP package:
  4361. Args: (&rest integers)
  4362. Returns the bit-wise EXCLUSIVE OR of its arguments.
  4363.  
  4364. FRASSOC-IF-NOT
  4365. Function in LISP package:
  4366. Args: (predicate alist)
  4367. Returns the first cons in ALIST whose cdr does not satisfy PREDICATE.
  4368.  
  4369. FMAKE-STRING-OUTPUT-STREAM
  4370. Function in LISP package:
  4371. Args: ()
  4372. Returns an output stream which will accumulate all output given it for
  4373. the benefit of the function GET-OUTPUT-STREAM-STRING.
  4374.  
  4375. FCHAR-GREATERP
  4376. Function in LISP package:
  4377. Args: (char &rest more-chars)
  4378. Returns T if the codes of CHARs are in strictly decreasing order; NIL
  4379. otherwise.  For a lower-case character, the code of its upper-case equivalent
  4380. is used.
  4381.  
  4382. FMAKE-SYNONYM-STREAM
  4383. Function in LISP package:
  4384. Args: (symbol)
  4385. Returns a stream which performs its operations on the stream which is the
  4386. value of the dynamic variable named by SYMBOL.
  4387.  
  4388. FBIT-IOR
  4389. Function in LISP package:
  4390. Args: (bit-array1 bit-array2 &optional (result-bit-array nil))
  4391. Performs a bit-wise logical IOR on the elements of BIT-ARRAY1 and BIT-ARRAY2.
  4392. Puts the results into a new bit array if RESULT-BIT-ARRAY is NIL, into
  4393. BIT-ARRAY1 if RESULT-BIT-ARRAY is T, or into RESULT-BIT-ARRAY otherwise.
  4394.  
  4395. V*LOAD-VERBOSE*
  4396. Variable in LISP package:
  4397. The default for the VERBOSE argument to LOAD.
  4398.  
  4399. FALPHANUMERICP
  4400. Function in LISP package:
  4401. Args: (char)
  4402. Returns T if CHAR is either numeric or alphabetic; NIL otherwise.
  4403.  
  4404. V*PRINT-CIRCLE*
  4405. Variable in LISP package:
  4406. Whether the KCL printer should take care of circular lists.
  4407.  
  4408. FREMHASH
  4409. Function in LISP package:
  4410. Args: (key hash-table)
  4411. Removes any entry for KEY in HASH-TABLE.  Returns T if such an entry
  4412. existed; NIL otherwise.
  4413.  
  4414. FNRECONC
  4415. Function in LISP package:
  4416. Args: (x y)
  4417. Equivalent to (NCONC (NREVERSE X) Y).
  4418.  
  4419. F>
  4420. Function in LISP package:
  4421. Args: (number &rest more-numbers)
  4422. Returns T if its arguments are in strictly decreasing order; NIL otherwise.
  4423.  
  4424. FDEFTYPE
  4425. Macro in LISP package:
  4426. Syntax: (deftype name lambda-list {decl | doc}* {form}*)
  4427. Defines a new type-specifier abbreviation in terms of an 'expansion' function
  4428.     (lambda lambda-list1 {decl}* {form}*)
  4429. where lambda-list1 is identical to LAMBDA-LIST except that all optional
  4430. parameters with no default value specified in LAMBDA-LIST defaults to the
  4431. symbol '*', but not to NIL.  When the type system of KCL encounters a
  4432. type specifier (NAME arg1 ... argn), it calls the expansion function with
  4433. the arguments arg1 ... argn, and uses the returned value instead of the
  4434. original type specifier.  When the symbol NAME is used as a type specifier,
  4435. the expansion function is called with no argument.  The doc-string DOC, if
  4436. supplied, is saved as the TYPE doc of NAME, and is retrieved by
  4437. (documentation 'NAME 'type).
  4438.  
  4439. FLOGBITP
  4440. Function in LISP package:
  4441. Args: (index integer)
  4442. Returns T if the INDEX-th bit of INTEGER is 1.
  4443.  
  4444. FMAPLIST
  4445. Function in LISP package:
  4446. Args: (fun list &rest more-lists)
  4447. Applies FUN to successive cdrs of LISTs and returns the results as a list.
  4448.  
  4449. VDOUBLE-FLOAT-EPSILON
  4450. Variable in LISP package:
  4451. Same as LONG-FLOAT-EPSILON.
  4452.  
  4453. FSET-DIFFERENCE
  4454. Function in LISP package:
  4455. Args: (list1 list2 &key (test #'eql) test-not (key #'identity))
  4456. Returns a list of elements of LIST1 that do not appear in LIST2.
  4457.  
  4458. FVECTORP
  4459. Function in LISP package:
  4460. Args: (x)
  4461. Returns T if X is a vector; NIL otherwise.
  4462.  
  4463. V*PRINT-PRETTY*
  4464. Variable in LISP package:
  4465. Whether the KCL printer should pretty-print.  See the function doc of PPRINT
  4466. for more information about pretty-printing.
  4467.  
  4468. FASSOC-IF
  4469. Function in LISP package:
  4470. Args: (test alist)
  4471. Returns the first pair in ALIST whose car satisfies TEST.
  4472.  
  4473. FGET-PROPERTIES
  4474. Function in LISP package:
  4475. Args: (place indicator-list)
  4476. Looks for the elements of INDICATOR-LIST in the property list stored in PLACE.
  4477. If found, returns the indicator, the value, and T as multiple-values.  If not,
  4478. returns NILs as its three values.
  4479.  
  4480. FSTRING<=
  4481. Function in LISP package:
  4482. Args: (string1 string2
  4483.        &key (start1 0) (end1 (length string1))
  4484.             (start2 0) (end2 (length string2)))
  4485. If STRING1 is lexicographically less than or equal to STRING2, then returns
  4486. the longest common prefix of the two strings.  Otherwise, returns NIL.
  4487.  
  4488. FIF
  4489. Special Form in LISP package:
  4490. Syntax: (if test then [else])
  4491. If TEST evaluates to non-NIL, then evaluates THEN and returns the result.
  4492. If not, evaluates ELSE (which defaults to NIL) and returns the result.
  4493.  
  4494. FUNWIND-PROTECT
  4495. Special Form in LISP package:
  4496. Syntax: (unwind-protect protected-form {cleanup-form}*)
  4497. Evaluates PROTECTED-FORM and returns whatever it returned.  Guarantees that
  4498. CLEANUP-FORMs be always evaluated before exiting from the UNWIND-PROTECT
  4499. form.
  4500.  
  4501. FEVALHOOK
  4502. Function in LISP package:
  4503. Args: (form evalhookfn applyhookfn &optional (env nil))
  4504. Evaluates FORM with *EVALHOOK* bound to EVALHOOKFN and *APPLYHOOK* bound
  4505. to APPLYHOOKFN.  Ignores these hooks once, for the top-level evaluation
  4506. of FORM.
  4507.  
  4508. FFILE-WRITE-DATE
  4509. Function in LISP package:
  4510. Args: (file)
  4511. Returns the time at which the specified file is written, as an integer in
  4512. universal time format.  FILE may be a string or a stream.
  4513.  
  4514. FLOGCOUNT
  4515. Function in LISP package:
  4516. Args: (integer)
  4517. If INTEGER is negative, returns the number of 0 bits.  Otherwise, returns
  4518. the number of 1 bits.
  4519.  
  4520. FOR
  4521. Special Form in LISP package:
  4522. Syntax: (or {form}*)
  4523. Evaluates FORMs in order from left to right.  If any FORM evaluates to
  4524. non-NIL, quits and returns that (single) value.  If the last FORM is reached,
  4525. returns whatever values it returns.
  4526.  
  4527. FPRIN1-TO-STRING
  4528. Function in LISP package:
  4529. Args: (object)
  4530. Returns as a string the printed representation of OBJECT in the mostly
  4531. readable representation.
  4532. Equivalent to (WRITE-TO-STRING OBJECT :ESCAPE T).
  4533.  
  4534. FMERGE-PATHNAMES
  4535. Function in LISP package:
  4536. Args: (pathname
  4537.        &optional (defaults *default-pathname-defaults*) default-version)
  4538. Fills in unspecified slots of PATHNAME from DEFAULTS.  DEFAULT-VERSION
  4539. is ignored in KCL.
  4540.  
  4541. FMEMBER-IF
  4542. Function in LISP package:
  4543. Args: (test list &key (key #'identity))
  4544. Returns the tail of LIST beginning with the first element satisfying TEST.
  4545.  
  4546. FREAD-BYTE
  4547. Function in LISP package:
  4548. Args: (stream &optional (eof-error-p t) (eof-value nil))
  4549. Reads the next byte from STREAM.
  4550.  
  4551. FSIMPLE-VECTOR-P
  4552. Function in LISP package:
  4553. Args: (x)
  4554. Returns T if X is a simple vector; NIL otherwise.
  4555.  
  4556. FCHAR-BITS
  4557. Function in LISP package:
  4558. Args: (char)
  4559. Returns the bits attribute (which is always 0 in KCL) of CHAR.
  4560.  
  4561. FPRINC-TO-STRING
  4562. Function in LISP package:
  4563. Args: (object)
  4564. Returns as a string the printed representation of OBJECT without escape
  4565. characters.  Equivalent to
  4566.     (WRITE-TO-STRING OBJECT :ESCAPE NIL).
  4567.  
  4568. FCOPY-TREE
  4569. Function in LISP package:
  4570. Args: (object)
  4571. Recursively copies conses in OBJECT and returns the result.
  4572.  
  4573. FGCD
  4574. Function in LISP package:
  4575. Args: (&rest integers)
  4576. Returns the greatest common divisor of INTEGERs.
  4577.  
  4578. FCTYPECASE
  4579. Macro in LISP package:
  4580. Syntax: (ctypecase keyplace {(type {form}*)}*)
  4581. Evaluates KEYPLACE and tries to find the TYPE in which the value of KEYPLACE
  4582. belongs.  If one is found, then evaluates FORMs that follow the KEY and
  4583. returns the value(s) of the last FORM.  If not, signals a correctable error.
  4584.  
  4585. V*STANDARD-INPUT*
  4586. Variable in LISP package:
  4587. The default input stream used by the KCL reader.
  4588.  
  4589. FBYE
  4590. Function in LISP package:
  4591. Args: ()
  4592. KCL specific: Exits from KCL.
  4593.  
  4594. FGET
  4595. Function in LISP package:
  4596. Args: (symbol indicator &optional (default nil))
  4597. Looks on the property list of SYMBOL for the specified INDICATOR.  If this
  4598. is found, returns the associated value.  Otherwise, returns DEFAULT.
  4599.  
  4600. FRATIONALP
  4601. Function in LISP package:
  4602. Args: (x)
  4603. Returns T if X is an integer or a ratio; NIL otherwise.
  4604.  
  4605. FMOD
  4606. Function in LISP package:
  4607. Args: (number divisor)
  4608. Returns the second result of (FLOOR NUMBER DIVISOR).
  4609.  
  4610. FFIND-ALL-SYMBOLS
  4611. Function in LISP package:
  4612. Args: (string-or-symbol)
  4613. Returns a list of all symbols that have the specified name.
  4614.  
  4615. V*FEATURES*
  4616. Variable in LISP package:
  4617. List of symbols that name features of the current version of KCL.
  4618. These features are used to decide the read-time conditionalization facility
  4619. provided by '#+' and '#-' read macros.  When the KCL reader encounters
  4620.     #+ feature-description form
  4621. it reads FORM in the usual manner if FEATURE-DESCRIPTION is true.  Otherwise,
  4622. the reader just skips FORM.
  4623.     #- feature-description form
  4624. is equivalent to
  4625.     #- (not feature-description) form
  4626. A feature-description may be a symbol, which is true only when it is an
  4627. element of *FEATURES*.  Or else, it must be one of the following:
  4628.     (and feature-desciption-1 ... feature-desciption-n)
  4629.     (or  feature-desciption-1 ... feature-desciption-n)
  4630.     (not feature-desciption)
  4631. The AND description is true only when all of its sub-descriptions are true.
  4632. The OR description is true only when at least one of its sub-descriptions is
  4633. true.  The NOT description is true only when its sub-description is false.
  4634.  
  4635. VBOOLE-ORC1
  4636. Variable in LISP package:
  4637. Makes BOOLE return LOGORC1 of INTEGER1 and INTEGER2.
  4638.  
  4639. FDIGIT-CHAR
  4640. Function in LISP package:
  4641. Args: (digit &optional (radix 10) (font 0))
  4642. Returns a character object that represents the DIGIT in the specified RADIX.
  4643. Returns NIL if no such character exists.
  4644.  
  4645. FPROBE-FILE
  4646. Function in LISP package:
  4647. Args: (file)
  4648. Returns the truename of file if the file exists.
  4649. Returns NIL otherwise.
  4650.  
  4651. FSTRING-LEFT-TRIM
  4652. Function in LISP package:
  4653. Args: (char-bag string)
  4654. Returns a copy of STRING with the characters in CHAR-BAG removed from the
  4655. left end.
  4656.  
  4657. FARRAY-TOTAL-SIZE
  4658. Function in LISP package:
  4659. Args: (array)
  4660. Returns the total number of elements of ARRAY.
  4661.  
  4662. FPATHNAME-VERSION
  4663. Function in LISP package:
  4664. Args: (pathname)
  4665. Returns the version slot of PATHNAME.
  4666.  
  4667. VSINGLE-FLOAT-NEGATIVE-EPSILON
  4668. Variable in LISP package:
  4669. Same as LONG-FLOAT-NEGATIVE-EPSILON.
  4670.  
  4671. FWRITE-LINE
  4672. Function in LISP package:
  4673. Args: (string &optional (stream *standard-output*)
  4674.               &key (start 0) (end (length string)))
  4675. Outputs STRING and then outputs a newline character.  Returns STRING.
  4676.  
  4677. FDO-SYMBOLS
  4678. Macro in LISP package:
  4679. Syntax: (do-symbols (var [package [result-form]]) {decl}* {tag | statement}*)
  4680. Executes STATEMENTs once for each symbol in the PACKAGE (which defaults to
  4681. the current package), with VAR bound to the current symbol.  Then evaluates
  4682. RESULT-FORM (which defaults to NIL) and returns the value(s).
  4683.  
  4684. FEVAL
  4685. Function in LISP package:
  4686. Args: (exp)
  4687. Evaluates EXP and returns the result(s).
  4688.  
  4689. FATOM
  4690. Function in LISP package:
  4691. Args: (x)
  4692. Returns T if X is not a cons; NIL otherwise.
  4693.  
  4694. FFIND-IF-NOT
  4695. Function in LISP package:
  4696. Args: (test sequence
  4697.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  4698. Returns the index of the first element in SEQUENCE that does not satisfy
  4699. TEST; NIL if no such element exists.
  4700.  
  4701. FLOOP
  4702. Special Form in LISP package:
  4703. Syntax: (loop {form}*)
  4704. Executes FORMs repeatedly until exited by a THROW or RETURN.  The FORMs are
  4705. surrounded by an implicit NIL block.
  4706.  
  4707. FDELETE-DUPLICATES
  4708. Function in LISP package:
  4709. Args: (sequence &key (from-end nil) (test #'eql) test-not (start 0)
  4710.                      (end (length sequence)) (key #'identity))
  4711. Returns a sequence formed by removing duplicated elements destructively from
  4712. SEQUENCE.
  4713.  
  4714. FREMOVE-DUPLICATES
  4715. Function in LISP package:
  4716. Args: (sequence
  4717.        &key (from-end nil) (test #'eql) test-not (start 0)
  4718.             (end (length sequence)) (key #'identity))
  4719. The elements of SEQUENCE are examined, and if any two match, one is discarded.
  4720. Returns the resulting sequence.
  4721.  
  4722. FCDDAR
  4723. Function in LISP package:
  4724. Args: (x)
  4725. Equivalent to (CDR (CDR (CAR X))).
  4726.  
  4727. FCDADR
  4728. Function in LISP package:
  4729. Args: (x)
  4730. Equivalent to (CDR (CAR (CDR X))).
  4731.  
  4732. FCADDR
  4733. Function in LISP package:
  4734. Args: (x)
  4735. Equivalent to (CAR (CDR (CDR X))).
  4736.  
  4737. FPOSITION-IF
  4738. Function in LISP package:
  4739. Args: (test sequence
  4740.        &key (from-end nil) (start 0) (end (length sequence)) (key #'identity))
  4741. Returns the index of the first element in SEQUENCE that satisfies TEST; NIL
  4742. if no such element exists.
  4743.  
  4744. FMERGE
  4745. Function in LISP package:
  4746. Args: (result-type sequence1 sequence2 predicate &key (key #'identity))
  4747. SEQUENCE1 and SEQUENCE2 are destructively merged into a sequence of type
  4748. RESULT-TYPE using PREDICATE to order the elements.
  4749.  
  4750. FFMAKUNBOUND
  4751. Function in LISP package:
  4752. Args: (symbol)
  4753. Discards the global function definition named by SYMBOL.  Returns SYMBOL.
  4754.  
  4755. FSLEEP
  4756. Function in LISP package:
  4757. Args: (n)
  4758. This function causes execution to be suspended for N seconds.  N may
  4759. be any non-negative, non-complex number.
  4760.  
  4761. FPACKAGE-NAME
  4762. Function in LISP package:
  4763. Args: (package)
  4764. Returns the string that names the specified PACKAGE.
  4765.  
  4766. FFIND-PACKAGE
  4767. Function in LISP package:
  4768. Args: (name)
  4769. Returns the specified package if it already exists; NIL otherwise.  NAME may
  4770. be a string that is the name or nickname of the package.  NAME may also be
  4771. a symbol, in which case the symbol's print name is used.
  4772.  
  4773. FASSOC
  4774. Function in LISP package:
  4775. Args: (item alist &key (test #'eql) test-not)
  4776. Returns the first pair in ALIST whose car is equal (in the sense of TEST) to
  4777. ITEM.
  4778.  
  4779. FPSETF
  4780. Macro in LISP package:
  4781. Syntax: (psetf {place newvalue}*)
  4782. Similar to SETF, but evaluates all NEWVALUEs first, and then replaces the
  4783. value in each PLACE with the value of the corresponding NEWVALUE.  Returns
  4784. NIL always.
  4785.  
  4786. FSET-CHAR-BIT
  4787. Function in LISP package:
  4788. Args: (char name newvalue)
  4789. Returns a character just like CHAR except that the named bit is set or
  4790. cleared, according to whether NEWVALUE is non-NIL or NIL.  This function
  4791. is useless in KCL.
  4792.  
  4793. FFLOOR
  4794. Function in LISP package:
  4795. Args: (number &optional (divisor 1))
  4796. Returns the largest integer not larger than the NUMBER divided by DIVISOR.
  4797. The second returned value is (- NUMBER (* first-value DIVISOR)).
  4798.  
  4799. FEVERY
  4800. Function in LISP package:
  4801. Args: (predicate sequence &rest more-sequences)
  4802. Returns T if every elements of SEQUENCEs satisfy PREDICATE; NIL otherwise.
  4803.  
  4804. FWRITE
  4805. Function in LISP package:
  4806. Args: (object &key (stream *standard-output*) (escape *print-escape*)
  4807.                    (radix *print-radix*) (base *print-base*)
  4808.                    (circle *print-circle*) (pretty *print-pretty*)
  4809.                    (level *print-level*) (length *print-length*)
  4810.                    (case *print-case*) (array *print-array*)
  4811.                    (gensym *print-gensym*))
  4812. Prints OBJECT in the specified mode.  See the variable docs of *PRINT-...*
  4813. for the mode.
  4814.  
  4815. FTHROW
  4816. Special Form in LISP package:
  4817. Syntax: (throw tag result)
  4818. Evaluates TAG and aborts the execution of the most recent CATCH form that sets
  4819. up a catcher with the same tag value.  The CATCH form returns whatever RESULT
  4820. returned.
  4821.  
  4822. FPLUSP
  4823. Function in LISP package:
  4824. Args: (number)
  4825. Returns T if NUMBER > 0; NIL otherwise.
  4826.  
  4827. FGET-OUTPUT-STREAM-STRING
  4828. Function in LISP package:
  4829. Args: (stream)
  4830. Returns a string of all the characters sent to STREAM made by
  4831. MAKE-STRING-OUTPUT-STREAM since the last call to this function.
  4832.  
  4833. FFLOAT-DIGITS
  4834. Function in LISP package:
  4835. Args: (float)
  4836. Returns the number of radix-B digits used to represent the significand F of
  4837. the floating-point number, where B = (FLOAT-RADIX FLOAT).
  4838.  
  4839. FDEFPARAMETER
  4840. Macro in LISP package:
  4841. Syntax: (defparameter name initial-value [doc])
  4842. Declares the variable NAME as a special variable and initializes the value.
  4843. The doc-string DOC, if supplied, is saved as a VARIABLE doc and can be
  4844. retrieved by (documentation 'NAME 'variable).
  4845.  
  4846. FREDUCE
  4847. Function in LISP package:
  4848. Args: (function sequence
  4849.        &key (from-end nil) (start 0) (end (length sequence)) initial-value)
  4850. Combines all the elements of SEQUENCE using a binary operation FUNCTION.
  4851. If INITIAL-VALUE is supplied, it is logically placed before the SEQUENCE.
  4852.  
  4853. FDEFVAR
  4854. Macro in LISP package:
  4855. Syntax: (defvar name [initial-value [doc]])
  4856. Declares the variable NAME as a special variable and, optionally, initializes
  4857. it.  The doc-string DOC, if supplied, is saved as a VARIABLE doc and can be
  4858. retrieved by (documentation 'NAME 'variable).
  4859.  
  4860. FREAD-DELIMITED-LIST
  4861. Function in LISP package:
  4862. Args: (char &optional (stream *standard-input*) (recursive-p nil))
  4863. Reads objects from STREAM until the next character after an object's
  4864. representation is CHAR.  Returns a list of the objects read.
  4865.  
  4866. FAPPEND
  4867. Function in LISP package:
  4868. Args: (&rest lists)
  4869. Constructs a new list by concatenating its arguments.
  4870.  
  4871. FMEMBER
  4872. Function in LISP package:
  4873. Args: (item list &key (test #'eql) test-not (key #'identity))
  4874. Returns the tail of LIST beginning with the first ITEM.
  4875.  
  4876. FSTRING-LESSP
  4877. Function in LISP package:
  4878. Args: (string1 string2
  4879.        &key (start1 0) (end1 (length string1))
  4880.             (start2 0) (end2 (length string2)))
  4881. Similar to STRING<, but ignores cases.
  4882.  
  4883. FRANDOM
  4884. Function in LISP package:
  4885. Args: (number &optional (state *random-state*))
  4886. Generates a uniformly distributed pseudo-random number between zero
  4887. (inclusive) and NUMBER (exclusive), by using the random state object STATE.
  4888.  
  4889. FGET-HOLE-SIZE
  4890. Function in SI package:
  4891. Args: ()
  4892. KCL specific: Returns as a fixnum the size of the memory hole (in pages).
  4893.  
  4894. FSPECIALP
  4895. Function in SI package:
  4896. Args: (symbol)
  4897. KCL specific: Returns T if the SYMBOL is a globally special variable; NIL
  4898. otherwise.
  4899.  
  4900. FOUTPUT-STREAM-STRING
  4901. Function in SI package:
  4902. Args: (string-output-stream)
  4903. KCL specific: Returns the string corresponding to the STRING-OUTPUT-STREAM.
  4904.  
  4905. FGET-STRING-INPUT-STREAM-INDEX
  4906. Function in SI package:
  4907. Args: (string-input-stream)
  4908. KCL specific: Returns the current index of the STRING-INPUT-STREAM.
  4909.  
  4910. FSTRING-CONCATENATE
  4911. Function in SI package:
  4912. Args: (&rest strings)
  4913. KCL specific: Returns the result of concatenating the given STRINGS.
  4914.  
  4915. FBDS-VAR
  4916. Function in SI package:
  4917. Args: (i)
  4918. KCL specific: Returns the symbol of the i-th entity in the bind stack.
  4919.  
  4920. FERROR-SET
  4921. Function in SI package:
  4922. Args: (form)
  4923. KCL specific: Evaluates the FORM in the null environment.  If the evaluation
  4924. of the FORM has successfully completed, SI:ERROR-SET returns NIL as the first
  4925. value and the result of the evaluation as the rest of the values.  If, in the
  4926. course of the evaluation, a non-local jump from the FORM is atempted,
  4927. SI:ERROR-SET traps the jump and returns the corresponding jump tag as its
  4928. value.
  4929.  
  4930. FCOMPILED-FUNCTION-NAME
  4931. Function in SI package:
  4932. Args: (compiled-function-object)
  4933. KCL specific: Returns the name of the COMPILED-FUNCTION-OBJECT.
  4934.  
  4935. FSTRUCTUREP
  4936. Function in SI package:
  4937. Args: (object)
  4938. KCL specific: Returns T if the OBJECT is a structure; NIL otherwise.
  4939.  
  4940. FIHS-VS
  4941. Function in SI package:
  4942. Args: (i)
  4943. KCL specific: Returns the value stack index of the i-th entity in the
  4944. invocation history stack.
  4945.  
  4946. FUNIVERSAL-ERROR-HANDLER
  4947. Function in SI package:
  4948. Args: (error-name correctable function-name
  4949.        continue-format-string error-format-string
  4950.        &rest args)
  4951. KCL specific: Starts the error handler of KCL.  When an error is detected,
  4952. KCL calls SI:UNIVERSAL-ERROR-HANDLER with the specified arguments.
  4953. ERROR-NAME is the name of the error.  CORRECTABLE is T for a correctable
  4954. error and NIL for a fatal error.  FUNCTION-NAME is the name of the function
  4955. that caused the error.  CONTINUE-FORMAT-STRING and ERROR-FORMAT-STRING are
  4956. the format strings of the error message.  ARGS are the arguments to the
  4957. format strings.
  4958.      To change the error handler of KCL, redefine SI:UNIVERSAL-ERROR-
  4959. HANDLER.
  4960.  
  4961. V*INTERRUPT-ENABLE*
  4962. Variable in SI package:
  4963. KCL specific: If the value of SI:*INTERRUPT-ENABLE* is non-NIL, KCL signals
  4964. an error on the terminal interrupt (this is the default case).  If it is NIL,
  4965. KCL ignores the interrupt and assigns T to SI:*INTERRUPT-ENABLE*.
  4966.  
  4967. FCHDIR
  4968. Function in SI package:
  4969. Args: (pathname)
  4970. KCL/UNIX specific: Changes the current working directory to the specified
  4971. pathname.
  4972.  
  4973. FCOPY-STREAM
  4974. Function in SI package:
  4975. Args: (in-stream out-stream)
  4976. KCL specific: Copies IN-STREAM to OUT-STREAM until the end-of-file on IN-
  4977. STREAM.
  4978.  
  4979. FINIT-SYSTEM
  4980. Function in SI package:
  4981. Args: ()
  4982. KCL specific: Initializes the library and the compiler of KCL.  Since they
  4983. have already been initialized in the standard image of KCL, calling SI:INIT-
  4984. SYSTEM will cause an error.
  4985.  
  4986. V*INDENT-FORMATTED-OUTPUT*
  4987. Variable in SI package:
  4988. KCL specific: The FORMAT directive ~% indents the next line if the value of
  4989. this variable is non-NIL.  If NIL, ~% simply does Newline.
  4990.  
  4991. FSET-HOLE-SIZE
  4992. Function in SI package:
  4993. Args: (fixnum)
  4994. KCL specific: Sets the size of the memory hole (in pages).
  4995.  
  4996. FFRS-BDS
  4997. Function in SI package:
  4998. Args: (i)
  4999. KCL specific: Returns the bind stack index of the i-th entity in the frame
  5000. stack.
  5001.  
  5002. FIHS-FUN
  5003. Function in SI package:
  5004. Args: (i)
  5005. KCL specific: Returns the function value of the i-th entity in the invocation
  5006. history stack.
  5007.  
  5008. F*MAKE-CONSTANT
  5009. Function in SI package:
  5010. Args: (symbol value)
  5011. KCL specific: Makes the SYMBOL a constant with the specified VALUE.
  5012.  
  5013. FFIXNUMP
  5014. Function in SI package:
  5015. Args: (object)
  5016. KCL specific: Returns T if the OBJECT is a fixnum; NIL otherwise.
  5017.  
  5018. FBDS-VAL
  5019. Function in SI package:
  5020. Args: (i)
  5021. KCL specific: Returns the value of the i-th entity in the bind stack.
  5022.  
  5023. FSTRING-TO-OBJECT
  5024. Function in SI package:
  5025. Args: (string)
  5026. KCL specific: (SI:STRING-TO-OBJECT STRING) is equivalent to
  5027. (READ-FROM-STRING STRING), but much faster.
  5028.  
  5029. V*SYSTEM-DIRECTORY*
  5030. Variable in SI package:
  5031. KCL specific: Holds the name of the system directory of KCL.
  5032.  
  5033. FFRS-IHS
  5034. Function in SI package:
  5035. Args: (i)
  5036. KCL specific: Returns the invocation history stack index of the i-th entity
  5037. in the frame stack.
  5038.  
  5039. FRESET-GBC-COUNT
  5040. Function in SI package:
  5041. Args: ()
  5042. KCL specific: Resets the counter of the garbage collector that records how
  5043. many times the garbage collector has been called for each implementation
  5044. type.
  5045.  
  5046. FCATCH-BAD-SIGNALS
  5047. Function in SI package:
  5048. Args: ()
  5049. KCL/BSD specific: Installs a signal catcher for bad signals:
  5050.     SIGILL, SIGIOT, SIGEMT, SIGBUS, SIGSEGV, SIGSYS.
  5051. The signal catcher, upon catching the signal, signals an error (and enter
  5052. the break-level).  Since the internal memory of KCL may be broken, the user
  5053. should check the signal and exit from KCL if necessary.  When the signal
  5054. is caught during garbage collection, KCL terminates immediately.
  5055.  
  5056. FRESET-STACK-LIMITS
  5057. Function in SI package:
  5058. Args: ()
  5059. KCL specific: Resets the stack limits to the normal state.  When a stack has
  5060. overflowed, KCL extends the limit for the stack in order to execute the error
  5061. handler.  After processing the error, KCL resets the stack limit by calling
  5062. SI:RESET-STACK-LIMITS.
  5063.  
  5064. V*GBC-MESSAGE*
  5065. Variable in SI package:
  5066. KCL specific: If the value of SI:*GBC-MESSAGE* is non-NIL, the garbage
  5067. collector prints some information on the terminal.  Usually SI:*GBC-MESSAGE*
  5068. should be set NIL.
  5069.  
  5070. F*MAKE-SPECIAL
  5071. Function in SI package:
  5072. Args: (symbol)
  5073. KCL specific: Makes the SYMBOL globally special.
  5074.  
  5075. FMAKE-STRING-OUTPUT-STREAM-FROM-STRING
  5076. Function in SI package:
  5077. Args: (string)
  5078. KCL specific: Creates a string-output-stream corresponding to the STRING and
  5079. returns it.  The STRING should have a fill-pointer.
  5080.  
  5081. V*IGNORE-EOF-ON-TERMINAL-IO*
  5082. Variable in SI package:
  5083. KCL specific: If the value of SI:*IGNORE-EOF-ON-TERMINAL-IO* is non-NIL, KCL
  5084. ignores the eof-character (usually ^D) on the terminal and the terminal never
  5085. becomes end-of-file.  The default value of SI:*IGNORE-EOF-ON-TERMINAL-IO* is
  5086. NIL.
  5087.  
  5088. FADDRESS
  5089. Function in SI package:
  5090. Args: (object)
  5091. KCL specific: Returns the address of the OBJECT as a fixnum.  The address of
  5092. an object depends on the version of KCL.  E.g. (SI:ADDRESS NIL) returns
  5093. 1879062044 on KCL/AOSVS dated March 14, 1986.
  5094.  
  5095. V*LISP-MAXPAGES*
  5096. Variable in SI package:
  5097. KCL specific: Holds the maximum number of pages (1 page = 2048 bytes) for the
  5098. KCL process.  The result of changing the value of SI:*LISP-MAXPAGES* is
  5099. unpredictable.
  5100.  
  5101. FARGC
  5102. Function in SI package:
  5103. Args: ()
  5104. KCL specific: Returns the number of arguments on the command line that invoked
  5105. the KCL process.
  5106.  
  5107. FNANI
  5108. Function in SI package:
  5109. Args: (fixnum)
  5110. KCL specific: Returns the object in the address FIXNUM.  This function is
  5111. the inverse of SI:ADDRESS.  Although SI:ADDRESS is a harmless operation,
  5112. SI:NANI is quite dangerous and should be used with care.
  5113.  
  5114. V*NOTIFY-GBC*
  5115. Variable in SI package:
  5116. KCL specific: If the value of this variable is non-NIL, then the garbage
  5117. collector notifies that it begins to run whenever it is invoked.  Otherwise,
  5118. garbage collection begins silently.
  5119.  
  5120. FSAVE-SYSTEM
  5121. Function in SI package:
  5122. Args: (pathname)
  5123. KCL specific: Saves the current KCL core imange into a program file specified
  5124. by PATHNAME.  This function differs from SAVE in that the contiguous and
  5125. relocatable areas are made permanent in the saved image.  Usually the
  5126. standard image of KCL interpreter/compiler is saved by SI:SAVE-SYSTEM.
  5127. This function causes an exit from lisp.  Various changes are made
  5128. to the memory of the running system, such as closing files and
  5129. resetting io streams.   It would not be possible to continue normally.   
  5130.  
  5131. FUNCATCH-BAD-SIGNALS
  5132. Function in SI package:
  5133. Args: ()
  5134. KCL/BSD specific: Undoes the effect of SI:CATCH-BAD-SIGNALS.
  5135.  
  5136. FVS
  5137. Function in SI package:
  5138. Args: (i)
  5139. KCL specific: Returns the i-th entity in the value stack.
  5140.  
  5141. FDISPLACED-ARRAY-P
  5142. Function in SI package:
  5143. Args: (array)
  5144. KCL specific: Returns T if the ARRAY is a displaced array; NIL otherwise.
  5145.  
  5146. FARGV
  5147. Function in SI package:
  5148. Args: (fixnum)
  5149. KCL specific: Returns the FIXNUM-th argument on the command line that invoked
  5150. the KCL process.
  5151.  
  5152. V*DEFAULT-TIME-ZONE*
  5153. Variable in SI package:
  5154. KCL specific: Holds the default time zone.  The initial value of SI:*DEFAULT-
  5155. TIME-ZONE* is -9 (the time zone of Japan).
  5156.  
  5157. FGETENV
  5158. Function in SI package:
  5159. Args: (string)
  5160. KCL/UNIX specific: Returns the environment with the name STRING as a string;
  5161. if the environment specified by STRING is not found, returns NIL.
  5162.  
  5163. FFASLINK
  5164. Function in SI package:
  5165. Args: (file string)
  5166. KCL/BSD specific: Loads the FASL file FILE while linking the object files and
  5167. libraries specified by STRING.  For example,
  5168.     (faslink "foo.o" "bar.o boo.o -lpixrect")
  5169. loads foo.o while linking two object files (bar.o and boo.o) and the library
  5170. pixrect.  Usually, foo.o consists of the C language interface for the
  5171. functions defined in the object files or the libraries.
  5172.  
  5173. A more portable way of making references to C code, is to build it
  5174. in at the time of the original make.   If foo.c references things
  5175. in -lpixrect, and foo.o is its compilation in the akcl/unixport directory
  5176.  
  5177. (cd akcl/unixport ; make "EXTRAS= foo.o -lpixrect ")
  5178.  
  5179. should add them.   If EXTRAS was already joe.o in the unixport/makefile
  5180. you should of course add joe.o to the above "EXTRAS= joe.o foo.o.."
  5181.  
  5182. Faslink does not work on most UNIX systems which are derived from SYS V or AIX.
  5183.  
  5184.  
  5185.  
  5186. FTOP-LEVEL
  5187. Function in SI package:
  5188. Args: ()
  5189. KCL specific: Starts the standard top-level listner of KCL.  When the KCL
  5190. process is invoked, it calls SI:TOP-LEVEL by (FUNCALL 'SI:TOP-LEVEL).
  5191.      To change the top-level of KCL, redefine SI:TOP-LEVEL and save the core
  5192. imange in a file.  When the saved imange is invoked, it will start the
  5193. redefined top-level.
  5194.  
  5195. FFRS-VS
  5196. Function in SI package:
  5197. Args: (i)
  5198. KCL specific: Returns the value stack index of the i-th entity in the frame
  5199. stack.
  5200.  
  5201. FUSE-FAST-LINKS
  5202. Function in LISP package:
  5203. Args: (turn-on)
  5204. AKCL specific: If TURN-ON is not nil, the fast link mechanism is enabled,
  5205. so that ordinary function calls will not appear in the invocation stack,
  5206. and calls will be much faster.  This is the default.   If you anticipate
  5207. needing to see a stack trace in the debugger, then you should turn this
  5208. off.
  5209.  
  5210. FWRITE-DEBUG-SYMBOLS
  5211. Function in the SI package:
  5212. Args: (start file
  5213.   &key (main-file "/usr/local/schelter/xkcl/unixport/raw_kcl")
  5214.   (output-file "debug-symbols.o" ))
  5215. Write out a file of debug-symbols using address START as the place
  5216. where FILE will be loaded into the running executable MAIN-FILE.  The
  5217. last is a keyword argument.
  5218.  
  5219.  
  5220.  
  5221. FPROF
  5222. Function in the SI package:
  5223. Args: (x y)
  5224. These functions in the SI package are AKCL specific, and allow monitoring
  5225. the run time of functions loaded into AKCL, as well as the basic functions.
  5226.  Sample Usage:
  5227.     (si::set-up-profile 1000000) (si::prof 0 90)
  5228.      run program
  5229.     (si::prof 0 0)   ;; turn off profile
  5230.     (si::display-prof)
  5231.     (si::clear)
  5232.     (si::prof 0 90)  ;; start profile again
  5233.     run program
  5234.    ..
  5235.   Profile can be stopped with (si::prof 0 0) and restarted with (si::prof 0 90)
  5236. The START-ADDRESS will correspond to the beginning of the profile array, and
  5237. the SCALE will mean that 256 bytes of code correspond to SCALE bytes in the
  5238. profile array.
  5239.  
  5240. Thus if the profile array is 1,000,000  bytes long and the code segment is 
  5241. 5 megabytes long you can profile the whole thing using a scale of 50
  5242. Note that long runs may result in overflow, and so an understating of the
  5243. time in a function.
  5244.  
  5245. You must run intensively however since, with a scale of 128 it takes
  5246. 6,000,000 times through a loop to overflow the sampling in one part of
  5247. the code.
  5248.  
  5249. FCATCH-FATAL
  5250. Function in the SI package:
  5251. Args: (i)
  5252.  
  5253. Sets the value of the C variable catch_fatal to I which should be an integer.
  5254. If catch_fatal is 1, then most unrecoverable fatal errors will be caught.
  5255. Upon catching such an error catch_fatal becomes -1, to avoid recursive errors.
  5256. The top level loop automatically sets catch_fatal to 1, if the value is less
  5257. than zero.  Catching can be turned off by making catch_fatal = 0.
  5258.  
  5259.  
  5260.  
  5261. V*MULTIPLY-STACKS*
  5262. Variable in SI package:
  5263.  
  5264. If this variable is set to a positive fixnum, then the next time through the
  5265. TOP-LEVEL loop, the loop will be exited.  The size of the stacks will be
  5266. multiplied by the value of *multiply-stacks*, and the TOP-LEVEL will be called
  5267. again.  Thus to double the size of the stacks:
  5268.  
  5269. >(setq si::*multiply-stacks* 2)
  5270. [exits top level and reinvokes it, with the new stacks in place]
  5271. >
  5272.  
  5273. We must exit TOP-LEVEL, because it and any other lisp functions
  5274. maintain many pointers into the stacks, which would be incorrect when the
  5275. stacks have been moved.    Interrupting the process of growing the stacks,
  5276. can leave you in an inconsistent state.
  5277.  
  5278. FEMIT-FN
  5279. Function in the COMPILER package:
  5280. Args: (turn-on)
  5281. If TURN-ON is t, the subsequent calls to  COMPILE-FILE will
  5282. cause compilation of foo.lisp to emit a foo.fn as well as foo.o.
  5283. The .fn file contains cross referencing information as well as
  5284. information useful to the collection utilities in cmpnew/collectfn
  5285. This latter file must be manually loaded to call emit-fn.
  5286.  
  5287. VDYNAMIC-EXTENT
  5288. Variable in the KEYWORD package:
  5289. Declaration to allow locals to be cons'd on the C stack.
  5290. For example
  5291. (defun foo (&rest l) (declare (:dynamic-extent l)) ...)
  5292. will cause l to be a list formed on the C stack of the foo function
  5293. frame.
  5294. Of course passing L out as a value of foo will cause havoc.
  5295. (setq x (make-list n))
  5296. (setq x (cons a b))
  5297. (setq x (list a  b c ..))
  5298. also are handled on the stack, for dynamic-extent x.
  5299.  
  5300.  
  5301. FGBC-TIME
  5302. Function in the SI package:
  5303. Args: (&optional x)
  5304. Sets the internal C variable gc_time to X if X is supplied and then
  5305. returns gc_time.  If gc_time is greater or equal to 0, then gc_time is
  5306. incremented by the garbage collector, according to the number of
  5307. internal time units spent there.   The initial value of gc_time is -1.
  5308.  
  5309.  
  5310. FFWRITE
  5311. Function in the SI package:
  5312. Args: (string start count stream)
  5313. Write from STRING starting at char START (or 0 if it is nil) COUNT characters
  5314. (or to end if COUNT is nil) to STREAM.  STREAM must be a stream such as
  5315. returned by FP-OUTPUT-STREAM.  Returns nil if it fails.
  5316.  
  5317.  
  5318. FFREAD
  5319. Function in the SI package:
  5320. Args: (string start count stream)
  5321. Read characters into STRING starting at char START (or 0 if it is nil) COUNT
  5322. characters (or from start to length of STRING if COUNT is nil).  Characters
  5323. are read from STREAM.  STREAM must be a stream such as returned by
  5324. FP-INPUT-STREAM.  Returns nil if it fails.  Return number of characters read
  5325. if it succeeds.
  5326.  
  5327. V*CMPINCLUDE-STRING*
  5328. Variable in the COMPILER package:
  5329. If it is a string it holds the text of the cmpinclude.h file appropriate for
  5330. this version.  Otherwise the usual #include of *cmpinclude* will be used.  To
  5331. disable this feature set *cmpinclude-string* to NIL in the init-form.
  5332.  
  5333. FEMIT-FN
  5334. Function in the COMPILER package:
  5335. Args: (turn-on)
  5336.  
  5337. If TURN-ON is t, then subsequent calls to compile-file on a file foo.lisp
  5338. cause output of a file foo.fn.  This .fn file contains lisp structures
  5339. describing the functions in foo.lisp.  Some tools for analyzing this data base
  5340. are WHO-CALLS, LIST-UNDEFINED-FUNCTIONS, LIST-UNCALLED-FUNCTIONS, and
  5341. MAKE-PROCLAIMS.
  5342.  
  5343. Usage:
  5344. (compiler::emit-fn t)
  5345. (compile-file "foo1.lisp")
  5346. (compile-file "foo2.lisp")
  5347.  
  5348. This would create foo1.fn and foo2.fn.  These may be loaded using LOAD.  Each
  5349. time compile-file is called the data base is cleared.  Immediately after the
  5350. compilation, the data base consists of data from the compilation.  Thus if you
  5351. wished to find functions called but not defined in the current file, you could
  5352. do (list-undefined-functions), immediately following the compilation.  If you
  5353. have a large system, you would load all the .fn files before using the above
  5354. tools.
  5355.  
  5356. FMAKE-ALL-PROCLAIMS
  5357. Function in the COMPILER package:
  5358. Args: (&rest directories)
  5359.  
  5360. For each D in DIRECTORIES all files in (directory D) are loaded.
  5361.  
  5362. For example 
  5363. (make-all-proclaims "lsp/*.fn" "cmpnew/*.fn")
  5364. would load any files in lsp/*.fn and cmpnew/*.fn.
  5365.  
  5366. [See EMIT-FN for details on creation of .fn files] 
  5367.  
  5368. Then calculations on the newly loaded .fn files are made, to determine
  5369. function proclamations.  If number of values of a function cannot be
  5370. determined [for example because of a final funcall, or call of a function
  5371. totally unknown at this time] then return type * is assigned.
  5372.  
  5373. Finally a file sys-proclaim.lisp is written out.  This file contains function
  5374. proclamations.
  5375.  
  5376. (load "sys-proclaim.lisp")
  5377. (compile-file "foo1.lisp")
  5378. (compile-file "foo2.lisp")
  5379.  
  5380.  
  5381.  
  5382. FMAKE-PROCLAIMS
  5383. Function in the COMPILER package:
  5384. Args: (&optional (stream *standard-output*))
  5385.  
  5386. Write to STREAM the function proclaims from the current data base.  Usually a
  5387. number of .fn files are loaded prior to running this.  See EMIT-FN for details
  5388. on how to collect this.  Simply use LOAD to load in .fn files.
  5389.  
  5390. FLIST-UNDEFINED-FUNCTIONS
  5391. Function in the COMPILER package:
  5392. Args: ()
  5393.  
  5394. Return a list of all functions called but not defined, in the current data
  5395. base (see EMIT-FN).
  5396.  
  5397. Sample:
  5398. (compiler::emit-fn t)
  5399. (compile-file "foo1.lisp")
  5400. (compiler::list-undefined-functions)
  5401. or
  5402. (mapcar 'load (directory "*.fn")) (compiler::list-undefined-functions)
  5403.  
  5404. FWHO-CALLS 
  5405. Function in the COMPILER package:
  5406. Args: (function-name)
  5407.  
  5408. List all functions in the data base [see emit-fn] which call FUNCTION-NAME.
  5409.  
  5410. FLIST-UNCALLED-FUNCTIONS
  5411. Function in the COMPILER package:
  5412. Args: ()
  5413.  
  5414. Examine the current data base [see emit-fn] for any functions or macros which
  5415. are called but are not: fboundp, OR defined in the data base, OR having
  5416. special compiler optimizer properties which would eliminate an actual call.
  5417.  
  5418.  
  5419.  
  5420. FSGC-ON
  5421. Function in the SI package:
  5422. Args: (&optional ON)
  5423. If ON is not nil then SGC (stratified garbage collection) is turned
  5424. on.   If ON is supplied and is nil, then SGC is turned off.
  5425. If ON is not supplied, then it returns T if SGC is on, and NIL if
  5426. SGC is off.
  5427.  
  5428. The purpose of SGC is to prevent paging activity during garbage
  5429. collection.  It is efficient if the actual number of pages being
  5430. written to form a small percentage of the total image size.  The image
  5431. should be built as compactly as possible.  This can be accomplished by
  5432. using a settings such as (si::allocate-growth 'cons 1 10 50) to limit
  5433. the growth in the cons maxpage to 10 pages per time.    Then
  5434. just before calling si::save-system to save your image you can
  5435. do something like:
  5436.  
  5437. (si::set-hole-size 500)(gbc nil) (si::sgc-on t) (si::save-system ..)
  5438.  
  5439. This makes the saved image come up with SGC on.  We have set a
  5440. reasonably large hole size.  This is so that allocation of pages
  5441. either because they fill up, or through specific calls to
  5442. si::allocate, will not need to move all the relocatable data.  Moving
  5443. relocatable data requires turning SGC off, performing a full gc, and
  5444. then turning it back on.  New relocatable data is collected by SGC,
  5445. but moving the old requires going through all pages of memory to
  5446. change pointers into it.
  5447.  
  5448. Using si::*notify-gbc* gives information about the number of pages
  5449. used by SGC.   
  5450.  
  5451. Note that SGC is only available on operating systems which provide
  5452. the mprotect system call, to write protect pages.   Otherwise we
  5453. cannot tell which pages have been written too.
  5454.  
  5455.  
  5456. FALLOCATE-SGC
  5457. Function in the SI package:
  5458. Args: (type min-pages max-pages percent-free)
  5459. If MIN-PAGES is 0, then this type will not be swept by SGC.    Otherwise
  5460. this is the minimum number of pages to make available to SGC.   MAX-PAGES
  5461. is the upper limit of such pages.   Only pages with PERCENT-FREE objects
  5462. on them, will be assigned to SGC.
  5463. A list of the previous values for min, max and percent are returned.
  5464.  
  5465. FALLOCATE-GROWTH
  5466. Function in the SI package:
  5467. Args: (type min max percent)
  5468. The next time after a GC for TYPE, if there are not sufficient objects
  5469. free, as a percent of all such objects, and if the maximum number of
  5470. pages for this type has already been allocated, then the maximum
  5471. number will be increased by PERCENT of the old maximum,
  5472. subject to the condition that this is at least MIN and at most MAX.
  5473. A list of the previous values for min, max and percent are returned.
  5474.  
  5475. Using (si::allocate-growth 'cons 1 10 50) would cause growth to be reasonably
  5476. slow.   This would be a reasonable setting during building of a large system
  5477. in order to pack the data together.   When running, a higher max and
  5478. percent might be useful.
  5479. FOPEN-FASD
  5480. Function in the SI package:
  5481. Args: (stream direction eof-value table)
  5482. Given file STREAM open for input or output in DIRECTION,
  5483. set it up to start writing or reading in fasd format.   When
  5484. reading from this stream the EOF-VALUE will be returned when
  5485. the end a fasd end of dump marker is encountered.   TABLE should
  5486. be an eq hashtable on output, a vector on input, or nil.   In this
  5487. last case a default one will be constructed.
  5488.  
  5489. We shall refer to the result as a `fasd stream'.   It is
  5490. suitable as the arg to CLOSE-FASD, READ-FASD-TOP, and as the second
  5491. second arg to WRITE-FASD.   As a lisp object it is actually a vector,
  5492. whose body coincides with:
  5493.  
  5494. struct fasd {
  5495.   object stream;   /* lisp object of type stream */
  5496.   object table;  /* hash table used in dumping or vector on input*/
  5497.   object eof;      /* lisp object to be returned on coming to eof mark */
  5498.   object direction;    /* holds Cnil or Kinput or Koutput */
  5499.   object package;  /* the package symbols are in by default */
  5500.   object index;     /* integer.  The current_dump index on write  */
  5501.   object filepos;   /* nil or the position of the start */ 
  5502.   object table_length; /*    On read it is set to the size dump array needed
  5503.              or 0
  5504.              */
  5505.   object macro ; }
  5506.  
  5507. We did not use a defstruct for this, because we want the compiler to use this
  5508. and it makes bootstrapping more difficult.   It is in "cmpnew/fasdmacros.lsp"
  5509.  
  5510.  
  5511. FWRITE-FASD-TOP
  5512. Function in the SI package:
  5513. Args: (X FASD-STREAM)
  5514. Write X to FASD-STREAM.
  5515.  
  5516. FREAD-FASD-TOP
  5517. Function in the SI package:
  5518. Args: (FASD-STREAM)
  5519. Read the next object from FASD-STREAM.   Return the eof-value of FASD-STREAM if we
  5520. encounter an eof marker put out by CLOSE-FASD.   Encountering end of actual file
  5521. stream causes an error.
  5522.  
  5523. FCLOSE-FASD
  5524. Function in the SI package:
  5525. Args: (FASD-STREAM)
  5526. On output write an eof marker to the associated file stream, and then
  5527. make FASD-STREAM invalid for further output.   It also attempts to write
  5528. information to the stream on the size of the index table needed to read from the
  5529. stream from the last open.    This is useful in growing the array.
  5530. It does not alter the file stream, other than for writing this information to it.
  5531. The file stream may be reopened for further use.   It is an error
  5532. to OPEN-FASD the same file or file stream again with out first calling CLOSE-FASD.
  5533.  
  5534.  
  5535.  
  5536.  
  5537. FFIND-SHARING-TOP
  5538. Function in the SI package:
  5539. Args: (x table)
  5540. X is any lisp object and TABLE is an eq hash table.  This walks through X
  5541. making entries to indicate the frequency of symbols,lists, and arrays.
  5542. Initially items get -1 when they are first met, and this is decremented by 1
  5543. each time the object occurs.  Call this function on all the objects in a fasd
  5544. file, which you wish to share structure.
  5545.  
  5546. V*CC*
  5547. Variable in the COMPILER package:
  5548. Has value a string which controls which C compiler is used by AKCL.
  5549. Usually this string is obtained from the machine.defs file, but
  5550. may be reset by the user, to change compilers or add an include path.
  5551.  
  5552. V*SPLIT-FILES*
  5553. Variable in the COMPILER package:
  5554. This affects the behaviour of compile-file, and is useful for cases where
  5555. the C compiler cannot handle large C files resulting from lisp compilation.
  5556. This scheme should allow arbitrarily long lisp files to be compiled.
  5557.  
  5558. If the  value [default NIL] is a positive integer, then the source file will
  5559. be compiled into several object files whose names have 0,1,2,.. prepended,
  5560. and which will be loaded by the main object file.     File 0 will
  5561. contain compilation of top level forms thru position *split-files* in the
  5562. lisp source file, and file 1 the next forms, etc.   Thus a 180k file
  5563. would probably result in three object files (plus the master object file
  5564. of the same name) if *split-files* was set to 60000.
  5565. The package information will be inserted in each file.
  5566.  
  5567. V*LOAD-PATHNAME*
  5568. Variable in the SI package:
  5569. Load binds this to the pathname of the file being loaded.
  5570.  
  5571. V*COMPILE-ORDINARIES*
  5572. Variable in the COMPILER package:
  5573. If this has a non nil value [default = nil], then all top level
  5574. forms will be compiled into machine instructions.    Otherwise
  5575. only defun's, defmacro's, and top level forms beginning
  5576. with (progn 'compile ...) will do so.
  5577.  
  5578. FDEFINE-INLINE-FUNCTION
  5579. Macro in the SI package:
  5580. Args: (fname vars &body body)
  5581. This is equivalent to defun except that VARS may not contain
  5582. &optional, &rest, &key or &aux.   Also a compiler property is
  5583. added, which essentially saves the body and turns this into
  5584. a let of the VARS and then execution of the body.   This
  5585. last is done using si::DEFINE-COMPILER-MACRO
  5586. Example:
  5587. (si::define-inline-function myplus (a b c) (+ a b c))
  5588.  
  5589. FDEFINE-COMPILER-MACRO
  5590. Macro in the SI package:
  5591. Args:(fname vars &body body)
  5592. FNAME may be the name of a function, but at compile time the macro
  5593. expansion given by this is used.
  5594.  
  5595. (si::define-compiler-macro mycar (a) `(car ,a))
  5596.  
  5597. TDBL
  5598. Function in the SI package:
  5599. Args:()
  5600. Invoke a top level loop, in which debug commands may be entered.
  5601. These commands may also be entered at breaks, or in the error
  5602. handler.
  5603. See SOURCE-LEVEL-DEBUG
  5604.  
  5605. TNLOAD
  5606. Function in the SI package:
  5607. Args:(file)
  5608. Load a file with the readtable bound to a special readtable, which
  5609. permits tracking of source line information as the file is loaded.
  5610. see SOURCE-LEVEL-DEBUG
  5611.  
  5612. TSOURCE-LEVEL-DEBUG
  5613.  
  5614. PRELIMINARY:
  5615.  
  5616. In emacs load (load "dbl.el") from the akcl/doc directory.
  5617. [ It also requires akcl.el from that directory.    Your system
  5618. administrator should do make in the doc directory, so that
  5619. these files are copied to the standard location.]
  5620.  
  5621. OVERVIEW:
  5622.  
  5623.    Lisp files loaded with si::nload will have source line information about
  5624. them recorded.  Break points may be set, and functions stepped.  Source code
  5625. will be automatically displayed in the other window, with a little arrow beside
  5626. the current line.  The backtrace (command :bt) will show line information and
  5627. you will get automatic display of the source as you move up and down the stack.
  5628.  
  5629. FUNCTIONS:
  5630. break points which have been set.
  5631.    si::nload (file)
  5632.       load a lisp file collecting source line information.
  5633.     
  5634.    si::break-function (function &optional line absolute)
  5635.      set up a breakpoint for FUNCTION at LINE relative to start or ABSOLUTE
  5636.  
  5637. EMACS COMMANDS:
  5638. M-x dbl makes a dbl buffer, suitable for running an inferior akcl.
  5639. It has special keybindings for stepping and viewing sources.
  5640.  
  5641. Inferior Dbl Mode:
  5642. Major mode for interacting with an inferior Dbl process.
  5643. The following commands are available:
  5644.  
  5645. C-c l           dbl-find-line
  5646.  
  5647. ESC d           dbl-:down
  5648. ESC u           dbl-:up
  5649. ESC c           dbl-:r
  5650. ESC n           dbl-:next
  5651. ESC i           dbl-:step
  5652. ESC s           dbl-:step
  5653.  
  5654.  
  5655. M-x dbl-display-frame displays in the other window
  5656. the last line referred to in the dbl buffer.
  5657.  
  5658. ESC i and ESC n in the dbl window,
  5659. call dbl to step and next and then update the other window
  5660. with the current file and position.
  5661.  
  5662. If you are in a source file, you may select a point to break
  5663. at, by doing C-x SPC.
  5664.  
  5665. Commands:
  5666. Many commands are inherited from shell mode. 
  5667. Additionally we have:
  5668.  
  5669. M-x dbl-display-frame display frames file in other window
  5670. ESC i advance one line in program
  5671. ESC n advance one line in program (skip over calls).
  5672. M-x send-dbl-command used for special printing of an arg at the current point.
  5673. C-x SPACE sets break point at current line.
  5674.  
  5675. ----------------------------
  5676.  
  5677.    When visiting a lisp buffer (if akcl.el is loaded in your emacs) the command
  5678. c-m-x evaluates the current defun into the process running in the other window.
  5679. Line information will be kept.  This line information allows you to set break
  5680. points at a given line (by typing C-x \space on the line in the source file
  5681. where you want the break to occur.  Once stopped within a function you may
  5682. single step with M-s.  This moves one line at a time in the source code,
  5683. displaying a little arrow beside your current position.  M-c is like M-s,
  5684. except that function invocations are skipped over, rather than entered into.
  5685. M-c continues execution.
  5686.  
  5687.    Keywords typed at top level, in the debug loop have
  5688. a special meaning:
  5689.  
  5690.   :delete  [n1] [n2] .. -- delete all break points or just n1,n2
  5691.   :disable [n1] [n2] .. -- disable all break points or just n1,n2
  5692.   :enable  [n1] [n2] .. -- enable all break points or just n1,n2
  5693.   :info  [:bkpt]      --print information about 
  5694.   :break [fun] [line] -- break at the current location, or if
  5695.      fun is supplied in fun.   Break  at the beginning unless a
  5696.      line offset from the beginning of fun is supplied.
  5697.   :fr [n] go to frame n   When in frame n, if the frame is interpreted,
  5698.     typing the name of locals, will print their values.   If it is compiled
  5699.     you must use (si::loc j) to print `locj'.   Autodisplay of the source
  5700.     will take place if it is interpreted and the line can be determined.
  5701.   :up [n] go up n frames from the current frame.
  5702.   :down [n] go down n frames
  5703.   :bt [n] back trace starting at the current frame and going to top level
  5704.      If n is specified show only n frames.
  5705.   :r  If stopped in a function resume.   If at top level in the dbl
  5706.    loop, exit and resume an outer loop.
  5707.   :q  quit the computation back to top level dbl loop.
  5708.   :step step to the next line with line information
  5709.   :next  step to the next line with line information skipping over function
  5710.     invocations.
  5711.  
  5712. Files:  debug.lsp
  5713.         dbl.el
  5714.         akcl.el
  5715.  
  5716.  
  5717.  
  5718.  
  5719. TLOW-LEVEL-DEBUG
  5720.  
  5721. Use the following functions to directly access KCL stacks.
  5722.  
  5723. (SI:VS i)    Returns the i-th entity in VS.
  5724. (SI:IHS-VS i)    Returns the VS index of the i-th entity in IHS.
  5725. (SI:IHS-FUN i)    Returns the function of the i-th entity in IHS.
  5726. (SI:FRS-VS i)    Returns the VS index of the i-th entity in FRS.
  5727. (SI:FRS-BDS i)    Returns the BDS index of the i-th entity in FRS.
  5728. (SI:FRS-IHS i)    Returns the IHS index of the i-th entity in FRS.
  5729. (SI:BDS-VAR i)    Returns the symbol of the i-th entity in BDS.
  5730. (SI:BDS-VAL i)    Returns the value of the i-th entity in BDS.
  5731.  
  5732. (SI:SUPER-GO i tag)
  5733.     Jumps to the specified tag established by the TAGBODY frame at
  5734.     FRS[i].  Both arguments are evaluated.  If FRS[i] happens to be
  5735.     a non-TAGBODY frame, then (THROW (SI:IHS-TAG i) (VALUES)) is
  5736.     performed.
  5737.  
  5738. For the KCL stacks, refer to Appendix B of the KCL Report.
  5739.  
  5740. TENVIRONMENT
  5741. The environment in AKCL which is passed to macroexpand and
  5742. other functions requesting an environment, should be a
  5743. list of 3 lists.    The first list looks like ((v1 val1) (v2 val2) ..)
  5744. where vi are variables and vali are their values.    
  5745. The second is a list of ((fname1 . fbody1) (fname2 . fbody2) ...)
  5746. where fbody1 is either (macro lambda-list lambda-body) or
  5747. (lambda-list lambda-body) depending on whether this is a macro
  5748. or a function.   The third list contains tags and blocks.
  5749.  
  5750.  
  5751. FBREAK-FUNCTION
  5752. Function in the SI package:
  5753. Args: (function &optional line absolute)
  5754. Set a breakpoint for a FUNCTION at LINE if the function has source
  5755. information loaded.  If ABSOLUTE is not nil, then the line is understood to be
  5756. relative to the beginning of the buffer.  See also dbl-break-function, the
  5757. emacs command.
  5758.  
  5759. FXDR-OPEN
  5760. Function in the SI package:
  5761. Args: (stream)
  5762. Returns an object suitable for passing to XDR-READ if the stream
  5763. is an input stream, and XDR-WRITE if it was an output stream.
  5764. Note the stream must be a unix stream, on which  si::fp-input-stream
  5765. or si::fp-output-stream would act as the identity.
  5766.  
  5767.  
  5768. FFP-INPUT-STREAM
  5769. Function in the SI package:
  5770. Args: (stream)
  5771. Return a unix stream for input associated to STREAM if possible,
  5772. otherwise return nil.
  5773.  
  5774. FFP-OUTPUT-STREAM
  5775. Function in the SI package:
  5776. Args: (stream)
  5777. Return a unix stream for output associated to STREAM if possible,
  5778. otherwise return nil.
  5779.  
  5780.  
  5781. FXDR-READ
  5782. Function in the SI package:
  5783. Args: (stream element)
  5784. Read one item from STREAM of type the type of ELEMENT.    The representation
  5785. of the elements is machine independent.    The xdr routines are what is
  5786. used by the basic unix rpc calls.    
  5787.  
  5788. FXDR-WRITE
  5789. Function in the SI package:
  5790. Args: (stream element)
  5791. Write to STREAM the given ELEMENT.
  5792.  
  5793.  
  5794.  
  5795. FCOND-ERROR
  5796. Macro in the SERROR package: Args: (variables body-form &body clauses) If a
  5797. condition is signalled during evaluation of body-form, The first of VARIABLES
  5798. is bound to the condition, and the clauses are evaluated like cond clauses, If
  5799. the cond falls off the end, then the error is signaled at this point in the
  5800. stack.  For the moment the rest of the VARIABLES are ignored.  This form is in
  5801. the lsp/serror.lsp file, which is not automatically loaded.
  5802.  
  5803. >(import 'serror::cond-error)
  5804. >(defun joe(x) (+ 1 x))
  5805. JOE
  5806. >(defun te (n)
  5807.   (cond-error (er) (progn (1+ n))
  5808.      ((null n) (print n) (print er) n)
  5809.      ((symbolp n) (print n))))
  5810. TE
  5811. >(te 2)
  5812. 3
  5813. >(te 'a)
  5814. >(te "a")
  5815.  
  5816. Error: "a" is not of type NUMBER.
  5817. Error signalled by +.
  5818. Broken at APPLY.  Type :H for Help.
  5819. >>:bt
  5820. #0   APPLY {loc0=#<compiled-function system:universal-error-handler>} [ihs=19]
  5821. #1   + {loc0=1,loc1="a",loc2=:wrong-type-argument,loc3=nil,loc4=+,loc5="",loc6="~S is n...} [ihs=15]
  5822. #2   JOE {} [ihs=14]
  5823. #3   TE {} [ihs=6]
  5824. #4   EVAL {loc0=nil,loc1=nil,loc2=nil,loc3=(lambda-block te (n) ...),loc4="a"} [ihs=5]
  5825.  
  5826.  
  5827. FCOND-ANY-ERROR
  5828. Macro in the SERROR package: Args: (variables body-form &body clauses) If a
  5829. This is similar to COND-ERROR but is faster.  It uses catch and throw rather
  5830. than closures.  The main difference is where the error handler (if the error
  5831. is not handled automatically)
  5832.  
  5833. V*TOP-LEVEL-HOOK*
  5834. Variable in the SI package:
  5835. If this variable is has a function as its value at start up time, then
  5836. it is run immediately after the init.lsp file is loaded.    This is useful
  5837. for starting up an alternate top level loop.
  5838.  
  5839. TINIT
  5840. If the file init.lsp exists in the current directory, it is
  5841. loaded at startup.  The first argument passed to the executable image
  5842. should be the system directory.  Normally this would be akcl/unixport.
  5843. This directory is stored in the si::*system-directory* variable.  If
  5844. the file sys-init.lsp exists in the system directory, it is loaded
  5845. before init.lsp.  See also si::*TOP-LEVEL-HOOK*.
  5846.  
  5847. FMULTIPLY-BIGNUM-STACK
  5848. Function in the SI package:
  5849. Args: (n)
  5850. Increase the internal bignum stack by a factor of N.  Normally space on this
  5851. stack is recovered after each complete lisp expression is evaluated.  However
  5852. if you are dealing with large integers, you may need to use this function 
  5853. to increase the stack.
  5854.  
  5855.  
  5856. TWINDOW
  5857. A sample program for drawing things on X windows from lisp
  5858. is included in the file akcl/lsp/littleXlsp.lsp
  5859.  
  5860. That routine invokes the corresponding C routines in XLIB.
  5861. So in order to use it you must `faslink' in the X routines.
  5862. Directions are given at the beginning of the lisp file,
  5863. for either building them into the image or using faslink.
  5864.  
  5865. This program is also a good tutorial on invoking C from lisp.
  5866.  
  5867. FRUN-PROCESS
  5868. Function in the SI package:
  5869. Args: (string arglist)
  5870.  
  5871. Execute the command STRING in a subshell passing the strings in the
  5872. list ARGLIST as arguments to the command.  Return a two way stream
  5873. associated to this.  Use si::fp-output-stream to get an associated
  5874. output stream or si::fp-input-stream.
  5875.  
  5876. Bugs: It does not properly deallocate everything, so that it will fail
  5877. if you call it too many times.
  5878.  
  5879. TFOREIGN-FUNCTIONS
  5880.  
  5881. See documentation on defentry and faslink.
  5882. The documentWindow discusses some examples.
  5883. The file lsp/littleXlsp.lsp provides a good example.
  5884.  
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.